因为在电子邮件地址的本地部分中可能有变音符号(例如öäü),所以我需要将它们转换为 ascii,因为 Zend-Mail 无法处理它 - 它总是抛出无效的标头异常。
所以有这个 php-function idn_to_ascii将域名转换为 IDNA ASCII 格式。问题是我不确定如何正确使用它。
让我们使用这个电子邮件地址:testö@domain.com
// doesn't work (unknown error):
idn_to_ascii('testö@domain.com') --> xn--test@domain-ufb.com
如果我只是转换电子邮件地址的本地部分,它似乎可以工作:
idn_to_ascii('testö') --> xn--test-8qa@domain.com
但是如果域部分也包含变音符号怎么办?
例如 testö@domainö.com
我应该做这样的事情吗?
idn_to_ascii('testö').'@'.idn_to_ascii('domainö.com')
同样在 php-homepage 上有人写了一条评论说你必须跳过高级域部分(官方文档是错误的): 见这里
idn_to_ascii('domainö') // right
idn_to_ascii('domainö.com') // wrong
我现在很困惑:|
有人有这方面的经验吗?最糟糕的是:我什至无法测试它,因为我没有 Umlate 的电子邮件地址。