【发布时间】:2019-09-12 00:39:59
【问题描述】:
我有一个可以正常工作的电子邮件附件脚本并向我发送一个具有正确名称的文件...但是该文件是 0 字节。
这里是php:
$namer = $_FILES["cv_upload"]["name"];
$file ="/home2/deserul7/public_html/nkaccounting/"."temp_cv/"."".$namer."";
$contenttype = $_FILES["cv_upload"]['type'];
$handle = fopen($file, "rb");
$file_size = filesize($file);
$content = fread($handle, $file_size);
fclose($handle);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$name = basename($file);
$eol = PHP_EOL;
// Basic headers
$header = "From: NK Accounting <sal@desertsunstudio.com>".$eol;
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"";
// Put everything else in $message
$message = "--".$uid.$eol;
$message .= "Content-Type: text/html; charset=ISO-8859-1".$eol;
$message .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
$message .= $msg2."<br><br><br>".$eol;
$message .= "--".$uid.$eol;
$message .= "Content-Type: ".$contenttype."; name=\"".$name."\"".$eol;
$message .= "Content-Transfer-Encoding: base64".$eol;
$message .= "Content-Disposition: attachment; filename=\"".$name."\"".$eol;
$message .= $content.$eol;
$message .= "--".$uid."--";
if (@mail($ouremail, $subject2, $message, $header)){
echo "sent";
}
当我将它发送到我的 gmail 时,它工作正常,但是当我尝试通过我桌面上的邮件应用程序获取它时,它以 0 字节出现...请帮助
【问题讨论】:
-
php 的 mail() 功能比较少,使用 phpmailer 之类的会好很多
-
你确定
$content里面有什么吗?echo strlen($content);显示什么? -
@Barmar 它回显 12514;我不确定这意味着什么
-
@tim 这是为了我的投资组合/学习...我为使文件真正从 tmp 文件夹中移动而进行了很多努力,我目前不使用库
-
好吧,实际上没有人会经常使用邮件,所以你不会学到任何你真正想要使用真实世界情况的东西
标签: php email attachment email-attachments