【问题标题】:Swiftmailer mails go into SPAM FolderSwiftmailer 邮件进入垃圾邮件文件夹
【发布时间】:2012-03-03 07:49:40
【问题描述】:
$headers = "\r\n" . "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";

$message = Swift_Message::newInstance()
                ->setSubject($subject)
                ->setFrom(array('from@mail.com' => 'From Address'))
                ->setTo(array('to@mail.com' => 'To Address'))
                ->setBody($message_plain_txt)
                ->addPart($message, 'text/html')
        ;
if ($file_name)
        {
            $message->attach(Swift_Attachment::fromPath($file_path));
        }

$result = $mailer->send($message);

在这种情况下,$filepath 是我在用户从表单中附加文件时使用的 tmp 路径,而 $file_name 是 tmp 文件名 $_FILES['file']['name']。

在此设置中,我可以发送邮件,但是当有附件时,邮件会进入垃圾邮件文件夹。如果没有附件,则邮件将进入收件箱。

当我从某个位置上传文件而不是从表单发送附件时,此设置非常有效。

我认为这与电子邮件标题有关,但我无法找出错误。

谁能帮我解决我在这里犯的错误。

通过将标题修改为

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\n";

【问题讨论】:

    标签: php email sendmail swiftmailer


    【解决方案1】:

    添加以下标题以避免进入垃圾邮件文件夹:

    $headers .= "Message-ID: <".time()." TheSystem@".$_SERVER['SERVER_NAME'].">\r\n";
    $headers .= "X-Mailer: PHP v".phpversion()."\r\n";         
    

    【讨论】:

    • 感谢您的帮助...即使添加了上述代码,邮件也会进入垃圾邮件。
    • 我不确定是什么问题,这对我有用,它可能取决于服务器垃圾邮件过滤器......很难说是什么问题。
    • @user434509 你做了哪些额外的修改?
    【解决方案2】:

    在 2015 年的 SwiftMailer 版本中,您将使用内置的 getHeaders() 方法来设置标题。

    $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']);
    

    【讨论】:

    • 来自doc,不需要通过ref (=&amp;)返回。
    猜你喜欢
    • 2013-11-19
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 2014-09-20
    • 2021-09-04
    • 2014-12-21
    相关资源
    最近更新 更多