use*_*509 5 php email sendmail swiftmailer
$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);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,$ 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";
Run Code Online (Sandbox Code Playgroud)
添加以下标头以避免转到垃圾邮件文件夹:
$headers .= "Message-ID: <".time()." TheSystem@".$_SERVER['SERVER_NAME'].">\r\n";
$headers .= "X-Mailer: PHP v".phpversion()."\r\n";
Run Code Online (Sandbox Code Playgroud)