1
我此脚本的作品完美,但附件是空的(我的意思是,我可以看到attachments..but每个文件我载荷0 KB为大小) 这里是代码:添加附件邮寄
allegato意味着附件
$path = $allegato['tmp_name'];
$fp = fopen($path, 'r');
do //we loop until there is no data left
{
$data = fread($fp, 8192);
if (strlen($data) == 0) break;
$content .= $data;
} while (true);
$content_encode = chunk_split(base64_encode($content));
$mime_boundary = "<<<--==+X[".md5(time())."]";
$headers .= "From:".$email."\r\n";
$headers .= "To: me <[email protected]>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed;\r\n";
$headers .= " boundary=\"".$mime_boundary."\"";
$message .= "This is a multi-part message in MIME format.\r\n";
$message .= "\r\n";
$message .= "--".$mime_boundary."\r\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
$message .= "Content-Transfer-Encoding: 7bit\r\n";
$message .= "\r\n";
$message .= "Email sent from:".$nome." \r\n";
$message .= $messaggio."\r\n";
$message .= "--".$mime_boundary."\r\n";
$message .= "Content-Type: ".$allegato_type."\"\r\n";
$message .= " name=\ ".$allegato_name."\"\r\n";
$message .= "Content-Transfer-Encoding: base64\r\n";
$message .= "Content-Disposition: attachment;\r\n";
$message .= " filename=\ ".$allegato_name."\"\r\n";
$message .= "\r\n";
$message .= $content_encode;
$message .= "\r\n";
$message .= "--".$mime_boundary."\r\n";
$ok = mail("[email protected]", $object, $message, $headers);
if($ok)
{
echo'<script type="text/javascript">alert("mail sent successfully ! ");</script>';
}
else
{ echo'<script type="text/javascript">alert("mail failed! ");</script>';}
有人可以带附件的帮助吗?(发送的每一个文件是0 KB,应该如何解决?)
我开始了这种方式为好,然后我意识到PHP PEAR框架的[Mail_Mime包(HTTP ://pear.php.net/package/Mail_Mime/redirected)要容易得多,而且我的问题少了很多。我建议你试试看。 – Travesty3
我不知道它是否相关,但似乎在''filename = \“中缺少一个引用。$ allegato_name。”\“\ r \ n”;' – sofl
Travesty3问题是我不知道if梨是安装在生产服务器。sofl也许你是对的,它应该如何? – Kato