2012-02-10 68 views
5
$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('[email protected]' => 'From Address')) 
       ->setTo(array('[email protected]' => 'To Address')) 
       ->setBody($message_plain_txt) 
       ->addPart($message, 'text/html') 
     ; 
if ($file_name) 
     { 
      $message->attach(Swift_Attachment::fromPath($file_path)); 
     } 

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

在这种情况下$文件路径当用户从一种形式附加一个文件和$ file_name是tmp文件名$ _FILES这是我现在用的TMP的路径[“文件”] [ '名称']。Swiftmailer邮件进入垃圾邮件文件夹

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

当我从一个位置上载文件而不从窗体发送附件时,此设置完全正常。

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

有人可以帮我解决我在这里做的错误。

得到它的工作通过修改标题来

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

回答

6

添加下面的标题,以避免到垃圾邮件文件夹:

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

感谢您的帮助......即使通过添加上面的代码,邮件也会进入垃圾邮件。 – user434509 2012-02-10 21:02:35

+0

我不确定那是什么问题,这对我有用,它可能取决于服务器spamfilter ...很难说有什么问题。 – 2012-02-10 21:13:26

+1

我通过修改标头进一步工作 – user434509 2012-02-10 21:18:16

3

在SwiftMailer的版本在2015年,你可以使用内置的getHeaders()方法来设置标题。

$headers =& $message->getHeaders(); 
$headers->addIdHeader('Message-ID', "[email protected]"); 
$headers->addTextHeader('MIME-Version', '1.0'); 
$headers->addTextHeader('X-Mailer', 'PHP v' . phpversion()); 
$headers->addParameterizedHeader('Content-type', 'text/html', ['charset' => 'utf-8']); 
+1

从[doc](http://swiftmailer.org/docs/headers.html#adding-new-headers),你不需要通过ref('=&')返回。 – IROEGBU 2017-06-28 14:37:31