PHPMailer发送空邮件

时间:2017-08-29 09:44:59

标签: php email

我使用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->isHTML(true);但这已经是我的代码了,这并没有给我任何帮助。

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

2 个答案:

答案 0 :(得分:0)

$mail->body使用$mail->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);

答案 1 :(得分:0)

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

另外,您要发送2个版本的电子邮件[文本和html],您要定义内容为html $mail->isHTML(true)并设置内容$mail->Body="body";,但同时还要发送一个用于以下内容的空变量电子邮件$mail->AltBody='';

的纯文本版本

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