我的脚本运行完美,但附件是空的(我的意思是我可以看到附件..但我加载的每个文件都是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 <mail@gmail.com>\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("mail@gmail.com", $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,我是如何解决的?)
答案 0 :(得分:1)
我建议使用PHPMailer!
可从http://sourceforge.net/projects/phpmailer/
免费获取只需将它放在服务器上的一个目录中,包含它的主要php,当你从php发送电子邮件时,你的生活将变得快乐。
我有一个易于启动的功能,我可以为您提供快速结果:
require("/path/to/class.phpmailer.php");
function mail_sender($from_name,$from_email,$to_email,$subject,$mailtext,$att = false) {
$mail = new PHPMailer();
$mail->IsSMTP(); // set mailer to use SMTP
$mail->Host = "localhost"; // specify main and backup server
$mail->SMTPAuth = false; // turn on SMTP authentication
$mail->From = $from_email;
$mail->FromName = $from_name;
$mail->WordWrap = 50; // set word wrap to 50 characters
$mail->IsHTML(true); // set email format to HTML
$mail->CharSet="utf-8";
$mail->Subject = $subject;
$mail->Body = $mailtext;
$mail->AltBody = "";
$mail->AddAddress($to_email);
if ($att) {
$mail->AddAttachment("include/attachment.doc");
}
if(!$mail->Send()) {
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
}