仅在 Outlook 中发送的 PHP 电子邮件存在主题字符问题
我使用 php 发送邮件,邮件主题有重音。
我在 Outlook 中收到奇怪的字符而不是重音字符。如果我在网络电子邮件客户端中看到该电子邮件,我会发现该主题很完美。
这是我用来发送电子邮件的代码:
$to = '[email protected]';
$subject = '[WEBSITE] áccent – tésts';
$message = '<p>Test message</p>
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers.= 'From:[email protected]' . "\r\n";
$headers.= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
mail($to, $subject, $message , $headers);
我如何解决这个问题,我必须使用另一个字符集吗?
Im sending a mail using php, and the subject of the mail has accents.
Im receiving weird characters in Outlook instead the accented chars. If i see the email in a web email client i see the subject perfect.
This is the code that im using to send the email:
$to = '[email protected]';
$subject = '[WEBSITE] áccent – tésts';
$message = '<p>Test message</p>
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers.= 'From:[email protected]' . "\r\n";
$headers.= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
mail($to, $subject, $message , $headers);
How i could solve the issue, do i have to use another charset?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
发送电子邮件的唯一可靠方法是使用纯 7 位 ASCII,因此当您想使用其他任何内容时,需要对字符串进行正确编码。在您的情况下,
[WEBSITE] áccent – tésts
应编码为(例如)=?windows-1252?B?W1dFQlNJVEVdIOFjY2VudCCWIHTpc3Rz?=
,其中字符串拆分为:检查:
这只是对非 ASCII 字符串进行编码的可能方法之一的示例。
发送电子邮件时,有很多类似这样的小细节需要注意。这就是为什么您迟早会使用合适的电子邮件包,例如 Swift Mailer 或 PHPMailer。
The only reliable way to send e-mail is using plain 7 bit ASCII so you need to encode strings properly when you want to use anything else. In your case,
[WEBSITE] áccent – tésts
should be encoded as (e.g.)=?windows-1252?B?W1dFQlNJVEVdIOFjY2VudCCWIHTpc3Rz?=
, where the string splits as:Check:
This is just an example of one of the possible ways to encode non-ASCII strings.
When sending e-mail, there are many little details like this that need attention. That's why sooner or later you end up using a proper e-mail package like Swift Mailer or PHPMailer.
如果存在混合编码类型,特殊字符将被破坏。
PHP 搞乱 HTML 字符集编码
PHP 还有一个选项编码消息。
PHP - 多字节字符串
If there is a mix of encoding types, special characters are destroyed.
PHP messing with HTML Charset Encoding
PHP also has an option for encoding messages.
PHP - Multibyte String