Java:InternetAddress

时间:2012-04-12 07:12:34

标签: java

我正在使用我的电子邮件存储在数据库中 InternetAddress.toUnicodeString()

它给了我这样的字符串:"John Doe" <doe@john.com>

问题:如何解析该字符串以将其转换回InternetAddress

谢谢

4 个答案:

答案 0 :(得分:3)

根据javadoc,InternetAddress.toUnicodeString()方法应该为您提供解码为unicode字符的RFC 822兼容电子邮件地址。但“John Doe”根本不是符合RFC 822的电子邮件地址。这指出了首先创建这些InternetAddress对象的问题。

当然,没有办法“解析”字符串“John Doe”并提取有效的电子邮件地址。信息根本无法提取。也许你可以在本地地址簿数据库中进行查找。


更新 -

"John Doe" <doe@john.com>转换为InternetAddress的方法是使用InternetAddress(String)构造函数(javadoc)。这将自动解析输入String。

答案 1 :(得分:0)

我会说,不可能。 您应该选择在数据库中存储全长的电子邮件地址,还是存储电子邮件地址的ID(需要单独的电子邮件地址表)。

确保您的InternetAddress对象有效。尝试在其上调用validate()以查看它是否真的正确。

答案 2 :(得分:0)

您可以根据情况使用新的InternetAddress(emailAddress,personalName)方法。

答案 3 :(得分:-1)

嗯......也许是使用constructor that takes a String parameter?请学习使用Javadoc API - 您可以比在这里询问更快地找到答案。