2014-01-17 28 views
1

我想创建一个只接收加密邮件的新电子邮件帐户。不幸的是,我无法修改邮件服务器配置,所以我考虑每2分钟使用cronjob检查收到的电子邮件,并自动拒绝那些未加密的邮件。PHP:如何区分加密和未加密的电子邮件?

到目前为止,我这样做:

$body = imap_body($mbox, $i); 
if (substr($body,0,27) == "-----BEGIN PGP MESSAGE-----") 
    $encrypted = true; 
else 
    $encrypted = false; 

的作品,但我敢肯定,我不捕获所有加密的电子邮件。我没有在标题中找到一个唯一的选项,告诉我消息是加密的。 Enigmail留言:

X-Enigmail-Version: 1.5.1 

但是,这对我没有任何帮助。就像我上面所做的那样,仅仅是grep的BEGIN PGP MESSAGE字符串就够了吗?

回答

0

由于计算语言学的学生,我的第一个想法是统计学试试吧:

据我所知加密的邮件不包含空格。因此,您可以将电子邮件正文标记为单词,并计算单词的平均长度。试试其他一些邮件或文本,看看平均长度有何不同。

它可能有点奢侈,但比寻找子字符串更有效:例如有人可能会发送处理加密或最新NSA泄漏的网页或文本;-)