当前位置: 首页 > 知识库问答 >
问题:

收到时PHP电子邮件附件0字节文件大小[重复]

晋骏喆
2023-03-14

我有一个电子邮件附件脚本,确实工作,并向我发送一个文件与正确的名称...

这里是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字节的速度出现...请帮助

共有1个答案

程禄
2023-03-14

附件标题和附件内容之间应该有一个空行。你只有一个$eol,所以没有空行(你用$msg2做了正确的部分)。将内容配置行更改为:

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

如果您使用这里字符串而不是串联,您可以更容易地看到这样的事情。

$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;
 类似资料:
  • 问题内容: 我想发送带有PDF附件的电子邮件。我创建了PDF文件,然后执行了以下操作,但我认为这是错误的: 在发送电子邮件之前,我可以看到附件,但是当我发送电子邮件时,它的发送没有附件,这是因为我没有正确附加文件。 问题答案: 您错了。使用代替。

  • 问题内容: 我正在使用sendgrid发送电子邮件,并且使用以下代码可以正常工作,但没有附件。 但是我需要发送附件,因此我搜索了github源和Web文档API,由于某种原因,没有javadocs,但是有一个示例GitHub sendgrid, 所以我一直在尝试直到它起作用为止,我缩小了一些异常和响应代码,起初我是被禁止的未经授权,最好是响应202,表示有效且已排队(在此处检查),这是我的代码发送

  • 问题内容: 有没有办法将图像附加到用PHP创建的html格式的电子邮件中? 我们需要确保在发送给可能在阅读电子邮件时无法访问Internet的客户的电子邮件上带有公司徽标(显然,他们可以下载文件)。 问题答案: 尝试使用PEARMail_Mime软件包,该软件包可以为您嵌入图像。 您需要使用addHTMLImage()方法并传递内容ID(cid),这是一个唯一的文本字符串,您还将在img的src属

  • 我试图发送附加文件到电子邮件。但是我无法将附件文件连同表格数据发送到电子邮件。我试过了 超文本标记语言: sendmail.php: 我尝试了相同的代码没有$strHeader在mail()邮件被发送,但当我添加$strHeader到mail()我无法发送代码。请指导我在哪里做错误,也请告诉我如何才能只允许jpg,jpeg,png格式上传。对我来说,编辑代码对我来说很容易学习。我在stackove

  • 我试图发送一个附加的json文件到电子邮件,但是由于某种原因,在发送/创建电子邮件时,json文件没有被附加。注意:我不希望用户选择要附加的文件,我希望它被固定/自动设置。 我有以下权限在我的 还有密码 编辑1:在做了@piyushpk建议的建议更改后,我现在在选择电子邮件应用程序时会出现以下错误: 然而,根据我的打印声明,文件大小只有69KB。。。

  • 问题内容: 我似乎找不到我编写的应该发送带有附件的电子邮件的php函数的问题。我已经为此苦苦挣扎了一段时间了。 编辑 问题是邮件的消息与文件混合在一起并作为附件发送。 问题答案: Artefacto让我更加关注输出,并且找到了解决方法: