电子邮件,不会忽略不只是由这几部分组成:如何在特殊字符进行编码的电子邮件,不会忽略
在未来的完整的字符串线(包括引号之间的部分中,引号本身和尖括号中)也是有效的地址:
“John Doe的” <[email protected]>
当我更换“李四”以我个人的名义,我得到一个地址,我可以在我的电子邮件客户端输入没有得到任何投诉(请注意我的最后»ö«名称,即非ASCII字符):
“休伯特Schölnast” <[email protected]>
如此看来(一个标准的电子邮件客户端雷鸟一样的用户),好像特殊字符在引用的部分是好的。
但是,当我在一个perl脚本检查这个完整的电子邮件ADRESS与CPAN模块电子邮件::有效我得到一个错误,说这个地址不匹配RFC822的规则,和文档该模块说,rfc822不允许在电子邮件地址的任何部分使用任何非ascii字符。 (当我省略了信ö或用ASCII字母代替它,检查说的地址是有效的。)
所以,很显然它发送之前的任何电子邮件客户端必须进行编码的电子邮件地址一封电子邮件给smtp服务器,并且必须在收到新电子邮件并向用户显示标题信息时对其进行解码。但我不明白这是如何完成的,并且我在Google上做了很多努力。
我需要这种编码算法,因为我想编写一个接受任何有效的电子邮件地址(也在引用部分中带有特殊字符)的perl脚本,然后向这些地址发送电子邮件。
顺便说一句,你的真名的双引号不是必需的,只是看起来像你把它放在引号中,因为它不是你的“真实”的名字。 (或者,或者你正在使用来自微软的电子邮件软件。无论哪种方式,令人尴尬。) – tripleee
@tripleee:嗯,这是我的真实姓名(查看我的个人资料)。但是,当名称包含特殊字符时,某些电子邮件客户端(不确定哪一个)需要引号。 –
当您对RFC2047进行编码时,该值不再包含任何特殊字符。 – tripleee