php – 发送带有国际口音和特殊字符的电子邮件

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 发送带有国际口音和特殊字符的电子邮件脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我通过西班牙语的 PHP mail()发送简报,他们有重音和特殊字符(我将尝试粘贴在这里:á,í,é,ñ…).

对于邮件的HTML版本,我认为我通过打印á,é解决了这个问题. …

但是对于纯文本版本,我假设我不能放那些,对吧?

对于HTML和纯文本版本,最好的做法是什么
之后,我可能不得不用更复杂的语言发送电子邮件,例如希伯来语或中文

谢谢!

您需要使用MIME.添加邮件标题
MIME-Version: 1.0
Content-tyPE: text/plain;charset=utf-8

(如果您已经使用MIME multipart / alternative将HTML和文本放在同一邮件中,则将Content-Type:text / plain; charset = utf-8放在文本部分的子标题上.)

这假设你要发送“国际”字符的编码是UTF-8.如果您希望迎合多个国家/地区,UTF-8是您在整个应用程序中使用的唯一合理的编码选择,但如果您还没有真正考虑过这一点,那么您的网站可能会认为西欧编码.检查中文字符之类的内容在您的站点数据库是否正常工作,然后再在邮件中担心它们.

出轨:有些地方用UTF-8发送邮件不是最有效的.我不了解中国,但在日本仍有一些倒退和荒谬的邮件系统(尤其是网络邮件)无法应对Unicode,必须给出一个特定于语言环境的编码,如Shift-JIS.如果您专注于这些市场,您通常最终必须使用iconv来创建特殊编码的邮件版本.不愉快.

现在,由于许多邮件服务器无法处理邮件正文中的非ASCII字符,因此您必须对它们进行编码.您可以为此选择quoted-PRintable或base64;对于包含ASCII字符的内容,quoted-printable通常更小,更易读

Content-Type: text/plain;charset=utf-8
Content-transfer-encoding: quoted-printable

Hello! An a-acute is =C3=A1

以这种格式编码的函数quoted_printable_encode.但是你确实需要一个合理的最新@R_419_2493@才能获得该函数;如果你没有它,你可以将Content-transfer-encoding设置为base64而使用base64_encode.

最后,如果要在标题中包含非ASCII字符(例如在From,To或Subject中),则语法完全不同:

Subject: =?utf-8?b?QW4gYS1hY3V0ZSBpcyDDoQ==?=

那个QW …… =中间的混乱是UTF-8中的“an a-acuteisá”的base64_encode.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 发送带有国际口音和特殊字符的电子邮件全部内容,希望文章能够帮你解决php – 发送带有国际口音和特殊字符的电子邮件所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。