我使用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
库来解决此问题以接收包含完整正文信息和附件的邮件?!!
答案 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版本,否则将使用文本版本。(也许是您的情况。)