gpt4 book ai didi

邮件地址中带有 ñ 字符的 Javamail 问题

转载 作者:搜寻专家 更新时间:2023-10-31 19:50:01 26 4
gpt4 key购买 nike

我在使用 ñ 字符时遇到解析方法的问题:

essage.setRecipients(Message.RecipientType.TO, internetAddress.parse("somedir.withñchar@m ailserver.com",false));

我为严格参数传递了 false,但我总是得到错误:

javax.mail.internet.AddressException: Local address contains control or whitespace in string ``somedir.with±har@mailserver.com''
at Mailer.main(Mailer.java:386)
Caused by: javax.mail.internet.AddressException: Local address contains control
or whitespace in string ``somedir.with±har@mailserver.com''
at javax.mail.internet.InternetAddress.checkAddress(InternetAddress.java
:1155)
at javax.mail.internet.InternetAddress.parse(InternetAddress.java:1044)
at javax.mail.internet.InternetAddress.parse(InternetAddress.java:575)
at Mailer.main(Mailer.java:377)

最佳答案

如果您仍然遇到这个问题,我建议您像我一样在您不寻常的电子邮件地址中添加双引号。它对我有用,因为 InternetAddress 的 checkAddress 方法放弃验证引用的地址。这是简单快捷的解决方案。

示例:

unusual_email_without_at_sign_or_with_accentuátion (won't work)
"unusual_email_without_at_sign_or_with_accentuátion" (it works!)

完美和正确的解决方案是 Java 团队修复 InternetAddress 类的错误,即使在构造函数中接收到 "strict=false" 也会检查电子邮件语法,在不应该的时候。

错误示例:

InternetAddress i = new InternetAddress("unusual_email_without_at_sign_or_with_accentuátion ", false)

变通解决方案示例:

InternetAddress i = new InternetAddress("\"unusual_email_without_at_sign_or_with_accentuátion\"", false)

创建一个扩展 Address 的新类的方法是行不通的,因为出于某种原因 Transport.send() 似乎再次验证了地址并且异常也被启动了。

如果有帮助,请告诉我们!

关于邮件地址中带有 ñ 字符的 Javamail 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4608554/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com