PHP 电子邮件附件 收到时 0 字节文件大小



我有一个电子邮件附件脚本,它可以工作并向我发送一个具有正确名称的文件...但是文件为 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.0rn";
          $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 字节......请帮忙

附件标题和附件内容之间应该有一个空行。您那里只有一个$eol,因此没有空行(您对带有$msg2的部分正确执行了该行(。将Content-Disposition行更改为:

      $message .= "Content-Disposition: attachment; filename="".$name.""".$eol.$eol;

如果您使用 here-string 而不是串联,您可以更轻松地看到类似内容。

$message = <<<EOF
--$uid
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
$msg2<br><br><br>
--$uid
Content-Type: $contenttype; name="$name"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="$name"
$content
--$uid
EOF;

相关内容

最新更新