Swiftmailer - PHP-Mails登陆垃圾邮件文件夹

时间:2013-11-07 14:02:45

标签: php phpmailer spam swiftmailer spam-prevention

我使用swiftmailer通过PHP发送邮件。大多数时候它工作正常。但有时,我的邮件邮件正在垃圾邮件文件夹中登陆。

这是我发送邮件的代码

function sendMail2($from,$to,$subject,$body,$attachment=NULL) {
    require_once 'include_apth/swiftmailer/swift_required.php';

    $transport = Swift_MailTransport::newInstance();
    $mailer = Swift_Mailer::newInstance($transport);
    $message = Swift_Message::newInstance($subject);
    $message->setFrom($from);
    $message->setTo($to);
    $message->setBody($body, 'text/html');

    if($attachment) {
        $message->attach(Swift_Attachment::fromPath($attachment));
    }

    if(@$mailer->send($message)) {
        return true;
    }
    else {
        return false;
    }
}

任何想法,为什么它有时会在垃圾邮件文件夹中登陆?

2 个答案:

答案 0 :(得分:0)

添加以下代码,它将完美运行

$headers =& $message->getHeaders();
$headers->addIdHeader('Message-ID', "b3eb7202-d2f1-11e4-b9d6-1681e6b88ec1@domain.com");
$headers->addTextHeader('MIME-Version', '1.0');
$headers->addTextHeader('X-Mailer', 'PHP v' . phpversion());
$headers->addParameterizedHeader('Content-type', 'text/html', ['charset' => 'utf-8']);

解决方案来自以下问题 Swiftmailer mails go into SPAM Folder

答案 1 :(得分:0)

我遇到了与电子邮件传递能力相同的问题。获取所有正确的DNS设置,标题等是不够的。

大多数(如果不是全部)云托管和家庭ISP IP范围都在各种IP列表中,预计不会发送电子邮件 - 因此它们更有可能被标记为垃圾邮件。

解决这个问题的最简单方法是使用专门的服务来熟悉电子邮件,并且公司花了很多精力来正确配置电子邮件传送。

有许多众所周知的此类公司,其中许多都提供重要的免费等级,只要您表现良好并发送未标记为垃圾邮件或反弹的相应电子邮件。例如,如果您托管在Amazon EC2上,您每月可通过AWS / SES收到超过60,000封电子邮件。我自己的系统,我有一个帐户,目前免费,使用Mailgun,每月有10,000封电子邮件发送限制。

对于Swiftmailer,有许多插件可以,例如,使用HTTP API向服务发送电子邮件,然后通过SMTP以通常的方式发送 - 大大提高了可交付性。