我正在使用Zend_Mail
和以下代码发送我的电子邮件。
$mail = new Zend_Mail('UTF-8');
$mail ->setBodyText($plainBody)
->setBodyHtml($htmlBody)
->setSubject($subject)
->setFrom(FROM_ADDR, FROM_NAME)
->addTo($email, $name )
->addHeader(MY_HEADER, serialize( array( 'foo' => 'bar' ) ) )
;
我需要检查准备好的消息的垃圾评级,我想使用SpamAssassin来做。
我想创建一个包含内容并运行诸如exec('spamc $filename')
之类的文件的文件,但是如何使用完整的MIME主体获取文件内容?
我注意到Zend_Mail_Abstract类(_buildBody()
)中有一个library/Zend/Mail/Transport/Abstract.php
函数返回该函数,但这是一个protected
函数。
由于
答案 0 :(得分:0)
我假设您想要在收件人端模拟垃圾邮件检查。这是一个有趣的想法,但请注意,它给你的结果将远非100%现实。毕竟,这是发送过程,它增加了许多重要信息,有助于确定电子邮件是否是垃圾邮件(例如发件人IP和路由。)
无论如何,要做到这一点,您可能必须根据Zend_Mail_Transport
的示例实现自定义Zend_Mail_Transport_Smtp
类。传输类发送到SMTP服务器的任何数据都必须重新路由到文本文件。据我所知,粗略地看一眼,这将是一项工作,但并非不可能。
答案 1 :(得分:0)
如果您想使用SpamAssasin,请通过spamc
运行您的电子邮件:
http://spamassassin.apache.org/full/3.1.x/doc/spamc.html
Spamc是spamc / spamd对的客户端的一半。它应该用于 spamassassin在脚本中处理邮件的地方。它会读取 来自STDIN的邮件,并将其连接到与垃圾邮件的连接,然后阅读 结果返回并打印到STDOUT。 Spamc极低 加载开销,因此加载速度要快得多 整个spamassassin计划。
您可以通过以下方式在PHP中使用:
shell_exec('spamc < message.tmp')
或STDIN
发送消息。