0
我與附件發送郵件有問題。我有這個功能:(已解決)發送附件有問題的郵件
function mail_att($to, $subject, $message, $anhang) {
$absender = "Sender";
$absender_mail = "[email protected]";
$reply = "[email protected]";
$path = $anhang;
$uploadname = "Anhang.pdf";
$trenner = md5(time());
// Mail Header
$mailheader = "Reply-To: " .$absender. "<" .$absender_mail. ">\r\n";
$mailheader .= "Return-Path: ".$absender_mail."\r\n";
$mailheader .= "Message-ID: <".$absender_mail.">\r\n";
$mailheader .= "X-Mailer: PHP v" .phpversion(). "\r\n";
$mailheader .= "From: ".$absender."<".$absender_mail.">\r\n";
$mailheader .= "MIME-Version: 1.0\r\n";
$mailheader .= "Content-Type: multipart/mixed;\r\n";
$mailheader .= " boundary = " .$trenner;
$mailheader .= "\r\n\r\n";
// Mailbody
$mailbody = "This is a multi-part message in MIME format\r\n";
$mailbody .= "--" .$trenner. "\r\n";
$mailbody .= "Content-Type: text/html; charset=UTF-8\r\n";
$mailbody .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
$mailbody .= $message. "\r\n\r\n";
// Attachment
$mailbody .= "--" .$trenner. "\r\n";
$mailbody .= "Content-Type: application/pdf; name=\"" .$uploadname. "\"\r\n";
$mailbody .= "Content-Transfer-Encoding: base64\r\n";
$mailbody .= "Content-Disposition: attachment; filename=\"" .$uploadname. "\"\r\n\r\n";
$mailbody .= chunk_split(base64_encode(file_get_contents($path)));
$mailbody .= "\n";
// Send
mail($to, htmlspecialchars($subject), $mailbody, $mailheader);
}
但是,當我想發送一封郵件時,我什麼也得不到。問題在哪裏?我確定我輸入正確的接收器電子郵件!郵件服務器沒有問題,因爲普通的電子郵件工作正常。
//編輯: 哦,我從來沒有想過要使用phpmailer。這使得所有簡單和它的作品。我所有的工作都是空虛的。但是,謝謝!
簡單的答案:不要建立自己的啞劇電子郵件,尤其是附件。使用PHPMailer或Swiftmailer,它們都會將整個代碼塊減少到大約4或5行。同樣,你只是簡單地假設'mail()'正在工作。你檢查了它的返回值嗎?失敗時返回false。你有沒有檢查你的傳出服務器的郵件日誌?也許這封電子郵件已被轉儲爲垃圾郵件。 –
你正在發送到gmail帳戶嗎?谷歌過濾電子郵件與他們認爲是「自動化」的來源發送附件臭名昭着。 –
**你什麼都沒得到?**我看到你正在嘗試發送到>>'$ to' <<,但該變量**尚未定義**。它出現在某個地方的網絡空間。 **添加**'$ to =「[email protected]」;'** ** **下方的$回覆=「[email protected]」;'。 –