2
我在IIS6上運行PHP。我有一些PHP成功發送1KB圖像作爲電子郵件附件。然而,當我嘗試附加500KB PDF時(它改變了Content-Type),它會掛起,幾分鐘後我得到「FastCGI進程超出配置的請求超時」(錯誤號258(0x80070102))。是否有最大合理的文件大小附加到一個MIME電子郵件與PHP?
有關爲什麼需要這麼長時間來附加PDF的想法?解決方案是不增加超時限制,我不能讓用戶在文件發送時坐在那裏3分鐘以上。
以下附上我的代碼:您的任何意見
$headers = "From: ".$from."\r\n";
$headers .= "Reply-To: ".$from."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$headers .="This is a multipart message in MIME format. \r\n\r\n";
$headers .= "--".$uid."\r\n\r\n";
$headers .= "Content-Type: text/plain; charset-iso-8859-1\r\n";
$headers .= "Content-Transfer-Encoding: quoted-printable\r\n\r\n";
$headers .= $text . "\r\n\r\n";
$headers .= "--".$uid."\r\n\r\n";
$headers .= "Content-Type: text/html; charset-iso-8859-1\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$headers .= $html . "\r\n\r\n";
$headers .= "--".$uid."\r\n\r\n";
$headers .= "Content-Type: image/png; name=\"".$filename."\"\r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$attachment = chunk_split(base64_encode(file_get_contents($path.$filename)));
$headers .= $attachment . "\r\n\r\n";
$headers .= "--".$uid."\r\n\r\n";
//send the email
$mail_sent = @mail($to, $subject, $text, $headers);
感謝。
你確定這不是PDF的實際生成使腳本超時? – Repox 2010-10-26 10:48:29
這聽起來不像附件filesize有什麼關係。附件大小取決於郵件服務器設置,通常至少2MB – 2010-10-26 11:48:16
嗨,我沒有生成PDF,我從文件系統附加PDF。我試過附加60KB PDF和1KB PNG,花了24秒。如果我添加570KB PDF,它會超時。 – Iain 2010-10-27 12:13:45