【问题标题】:PHPMailer send empty mailPHPMailer 发送空邮件
【发布时间】:2017-08-29 09:44:58
【问题描述】:

我使用phpmailer 库发送带有附件的电子邮件

这封邮件的正文是html

这是我的代码:

require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->CharSet = 'UTF-8';
$mail->From = $email;
$mail->FromName = $staffname;
$mail->addAddress($email,$staffname);
//Provide file path and name of the attachments
for($i=0;$i<count($files);$i++){    
 $mail->AddAttachment($_FILES['myfile']['tmp_name'][$i],
                      $_FILES['myfile']['name'][$i]); //Filename is optional
}
$mail->isHTML(true);
$mail->Subject = "New Task";
$mail->Body = "<h1 align='center'>YOU HAVE A NEW TASK</h1>
    <table  width='100%' border='1'>
    <tr bgcolor='#f7ac01' align='center'>
    <td>Date</td>
    <td>Description</td>
    <td>Status</td>
    <td>Type</td>
    <td>Frequency</td>
    <td>Priority</td>
    </tr>
    <tr align='center'>
    <td>$date</td>
    <td>$desc</td>
    <td>$status</td>
    <td>$type</td>
    <td>$frequency</td>
    <td>$priority</td>
    </tr>
    </table>
    <h2 align='center'>PLEASE CHECK IT </h3>
    ";
$mail->AltBody = "";
if(!$mail->send()) 
{
    header("location:add-tasks.php?msg=33");//Mail Not Send
}else{
header("location:add-tasks.php?msg=10");//Add Complete
}

问题是我收到一封没有任何附件的空正文邮件

经过一定的搜索,我发现我应该使用

$mail->Body

没有

$mail->body

我应该使用$mail-&gt;isHTML(true);,但这已经是我的代码了,这并没有给我任何帮助。

如何解决这个问题,以使用phpmailer 库接收包含完整正文信息和附件的邮件??!!

【问题讨论】:

    标签: php email


    【解决方案1】:

    不是$mail-&gt;body 使用$mail-&gt;MsgHTML

    $message = "<h1 align='center'>YOU HAVE A NEW TASK</h1>
    <table  width='100%' border='1'>
    <tr bgcolor='#f7ac01' align='center'>
    <td>Date</td>
    <td>Description</td>
    <td>Status</td>
    <td>Type</td>
    <td>Frequency</td>
    <td>Priority</td>
    </tr>
    <tr align='center'>
    <td>$date</td>
    <td>$desc</td>
    <td>$status</td>
    <td>$type</td>
    <td>$frequency</td>
    <td>$priority</td>
    </tr>
    </table>
    <h2 align='center'>PLEASE CHECK IT </h3>
    ";    
    $mail->MsgHTML($message);
    

    【讨论】:

    • 我也收到一封没有任何附件的空邮件
    • 你有没有给附件名称和路径
    • 添加附件 $mail->addAttachment($path, $name, $encoding, $type);
    • 这是路径 $path = "uploads/";并且附件代码放在上面
    • 试试这个结构dirname(__FILE__).'/uploads//filename.doc'
    【解决方案2】:

    您应该尝试将您上传的文件move_uploaded_file 移动到您的文件系统中,稍后将其附加到您的电子邮件中。

    此外,您正在发送 2 个版本的电子邮件 [文本和 html],您定义内容为 html $mail-&gt;isHTML(true) 并设置内容 $mail-&gt;Body="body";,但您还发送了一个纯文本版本的空变量电子邮件$mail-&gt;AltBody='';

    您的电子邮件客户端还必须接受电子邮件的 html 版本,否则它将使用文本版本。(也许这是您的情况。)

    【讨论】:

      猜你喜欢
      • 2013-11-29
      • 2012-09-15
      • 1970-01-01
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 2013-10-05
      相关资源
      最近更新 更多