当尝试发送电子邮件到包含字母"ñ"的收件人地址时,我得到phpmailer上的下一个错误,例如:
致命错误:未捕获的异常'phpmailerException'带有消息'无效地址:lauro.muñoz@live.com.mx'
我知道它说这是一个无效的地址,它只是因为它包含字母ñ,在$mail = new PHPMailer(true);
之后使用$mail->CharSet = 'UTF-8';
,不工作。
没有ñ的任何正规地址都可以。有什么办法使ñ的电子邮件地址有效吗?
似乎这些字符不允许成为电子邮件地址http://en.wikipedia.org/wiki/E-mail_address#Local_part的"本地部分"的一部分。
问题下面的评论表明您的邮件服务器根本不支持国际化电子邮件地址。如果是这种情况,您可以使用的解决方法是将地址转换为普通的US-ASCII等价物。用于此的编码称为punycode。例如:
lauro.muñoz@live.com.mx
…变成了
lauro.xn--muoz-hqa@live.com.mx
…应该是同一个邮箱
免责声明:我从未使用过国际化地址,请彻底测试。