我一直在试用其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这是邮件正文
请帮忙
答案 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