带有PHPMailer的消息正文中出现的MIME标头

时间:2012-08-12 07:05:25

标签: php character-encoding header phpmailer

我一直在试用其README文件中给出的PHPMailer示例脚本。现在,当我运行该脚本时:

<?php
require("phpmailer.inc.php");

$mail = new phpmailer;

//$mail->IsSMTP(); // set mailer to use SMTP
$mail->From = "from@email.com";
$mail->FromName = "Mailer";
//$mail->Host = "smtp1.site.com;smtp2.site.com";  // specify main and backup server
$mail->AddAddress("someone@someplace.com");
//$mail->AddAddress("ellen@site.com");   // name is optional
$mail->AddReplyTo("info@site.com", "Information");
$mail->WordWrap = 50;    // set word wrap
//$mail->AddAttachment("c:\\temp\\js-bak.sql");  // add attachments
//$mail->AddAttachment("c:/temp/11-10-00.zip");

$mail->IsHTML(true);    // set email format to HTML
$mail->Subject = "Here is the subject";
$mail->Body = "This is the message body";
$mail->Send(); // send message
?>

我收到以下警告:

  

警告:mb_send_mail()[function.mb-send-mail]:不支持的字符集   “” ISO-8859-1 “” - 将被视为ascii in   第162行的/export/opt/samplefiles/phpmailer.inc.php

并且收到的消息也包含标题:

  

Mime-Version:1.0这是邮件正文

请帮忙

2 个答案:

答案 0 :(得分:0)

第一个警告暗示mb_send_mail()被用于普通mail()功能。在PHPMailer包中不太可能做好准备。

这是您必须注意的设置mbstring.func_overload。它不应该设置为零。 (例如,将5更改为4 - 或者从7更改为6,或者从3更改为2。)

必须在php.ini.user.ini中进行设置。函数重载不能在运行时修复。

如果这不适应,那么在对提供的值应用mb_internal_encoding("UTF-8");之后,解决方法可能是mb_encode_mimeheader()以避开错误消息。可能你必须调整PHPMailer以省略charaset参数周围的引号。

答案 1 :(得分:0)

我刚刚意识到我实际上一直在使用旧版本的PHPMailer(版本0.89或其他)。我已经把自己变成了一个新的5.2,它似乎已经解决了。无论如何,谢谢你:P