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