3
我不能斯威夫特梅勒發送multipart/alternative的(我還沒有發現任何引用,所以也許我不能使用此功能),這是我的代碼:發送multipart/alternative的郵件與斯威夫特梅勒
$file[1]=html_entity_decode($file[1]);
//Prepare plain/html body
foreach($rep as $find => $sost)
$file[1]=str_replace($find,$sost,$file[1]);
//Prepare plain/text body
$plain=strip_tags(str_replace(' ',' ',str_replace('<br/>',"\n",$file[1])));
$boundary=uniqid('n_=_p');
//Prepare mail body
$body = "--".$boundary."\r\n";
$body .= "Content-type: text/plain;\r\ncharset=utf-8\r\nContent-Transfer-Encoding: 7bit\r\n";
$body .= $plain;
$body .= "\r\n--".$boundary."\r\n";
$body .= "Content-type: text/html;\r\ncharset=utf-8\r\nContent-Transfer-Encoding: 7bit\r\n";
$body .= "<html><body>".$file[1]."</body></html>";
$body .= "r\n--".$boundary ."--";
//Send Mail
$message = Swift_Message::newInstance();
$message->setFrom(array($stmp[2]=>$stmp[1]));
$message->setReplyTo(array($stmp[2]=>$stmp[1]));
$message->setSubject($file[0]);
$message->setContentType("multipart/alternative");
$message->setBody($body);
$message->setTo($mail);
$message->setBoundary($boundary);
if($stmp[0]==0)
$transport = Swift_SendmailTransport::newInstance('/usr/sbin/sendmail -t');
else if($stmp[0]==1){
if($stmp[5]==0)
$transport = Swift_SmtpTransport::newInstance($stmp[2],$stmp[4]);
else
$transport = Swift_SmtpTransport::newInstance($stmp[2],$stmp[4],'ssl');
if($stmp[6]==1){
$transport->setUsername($stmp[7]);
$transport->setPassword($stmp[8]);
}
}
$mailer = Swift_Mailer::newInstance($transport);
if(!$mailer->send($message,$failure))
file_put_contents('send_mail_Send_error',print_r($failure,true));
通常我會收到一個不可知的消息或名爲'noname'的附加文件。
有人可以幫助我嗎?由於
你嚴重濫用swiftmailer。絕對不需要設置自己的標題。 ' - > setBody('html content here','text/html')'和' - > addPart('純文本替代這裏','text/plain');'。 –
我還沒有理解' - > addPart'的用法,所以謝謝。對於垃圾郵件原因,最好將默認內容類型設置爲text/plain並在附加html部分之後?謝謝 – Razorphyn
大多數人使用非html郵件程序的替代文本,所以html被剝奪的人仍然可以閱讀至少電子郵件的內容。至於垃圾郵件的目的,我不能肯定地說。我非常懷疑替代訴訟的相對地位。主體是相關的,但都涉及個人垃圾郵件過濾/評分系統。 –