我尝试使用PHPMailer发送注册,激活.邮件给用户:
require("class.phpmailer.php");
$mail -> charSet = "UTF-8";
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.mydomain.org";
$mail->From = "name@mydomain.org";
$mail->SMTPAuth = true;
$mail->Username ="username";
$mail->Password="passw";
//$mail->FromName = $header;
$mail->FromName = mb_convert_encoding($header, "UTF-8", "auto");
$mail->AddAddress($emladd);
$mail->AddAddress("mytest@gmail.com");
$mail->AddBCC('mytest2@mydomain.org', 'firstadd');
$mail->Subject = $sub;
$mail->Body = $message;
$mail->WordWrap = 50;
if(!$mail->Send()) {
echo 'Message was not sent.';
echo 'Mailer error: ' . $mail->ErrorInfo;
}
Run Code Online (Sandbox Code Playgroud)
该$messageIS包含拉丁字符.不幸的是,所有webmail(gmail,webmail.mydomain.org,emailaddress.domain.xx)都使用不同的编码.
如何强制使用UTF-8编码在所有邮箱上显示我的邮件完全相同?
我尝试转换邮件标题宽度mb_convert_encoding(),但没有运气.
Ale*_*exV 429
如果您100%确定$ message包含ISO-8859-1,您可以使用utf8_encode,正如David所说.否则在$ message上使用 mb_detect_encoding和mb_convert_encoding.
另请注意
$mail -> charSet = "UTF-8";
Run Code Online (Sandbox Code Playgroud)
应该替换为:
$mail->CharSet = 'UTF-8';
Run Code Online (Sandbox Code Playgroud)
并且在实例化之后放置(之后new).属性区分大小写!请参阅PHPMailer doc fot列表和确切的拼写.
此外,PHPMailer的默认编码对于8bitUTF-8数据可能存在问题.要解决此问题,您可以:
$mail->Encoding = 'base64';
Run Code Online (Sandbox Code Playgroud)
请注意,'quoted-printable'在这些情况下(甚至可能'binary')也可能会有效.有关更多详细信息,请阅读RFC1341 - Content-Transfer-Encoding标头字段.
小智 25
$mail -> CharSet = "UTF-8";
$mail = new PHPMailer();
Run Code Online (Sandbox Code Playgroud)
线$mail -> CharSet = "UTF-8";必须在$mail = new PHPMailer();没有空格后!
试试这个
$mail = new PHPMailer();
$mail->CharSet = "UTF-8";
Run Code Online (Sandbox Code Playgroud)
当以上方法均不起作用时,邮件仍然如下所示\xc2\xaa \xc3\x97\xe2\x80\x9d\xc3\x97\xe2\x80\xa2\xc3\x97\xe2\x80\x9c\xc3\x97\xc2\xa4\xc3\x97\xc2\xa1\xc3\x97\xe2\x80\x9d \xc3\x97\xe2\x80\xa2\xc3\x97 \xc3\x97\xc2\xa9\xc3\x97\xc5\x93:
$mail->addCustomHeader('Content-Type', 'text/plain;charset=utf-8');\n$mail->Subject = '=?UTF-8?B?' . base64_encode($subject) . '?=';;\nRun Code Online (Sandbox Code Playgroud)\n
小智 5
我这样工作
$mail->FromName = utf8_decode($_POST['name']);
Run Code Online (Sandbox Code Playgroud)
http://php.net/manual/zh/function.utf8-decode.php
小智 5
抱歉迟到了.根据您的服务器配置,您可能需要严格使用小写字母 utf-8 指定字符,否则将被忽略.试试这个,如果你最终在这里搜索解决方案,上面的答案都没有帮助:
$mail->CharSet = "UTF-8";
Run Code Online (Sandbox Code Playgroud)
应替换为:
$mail->CharSet = "utf-8";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
240422 次 |
| 最近记录: |