1

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

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

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

谢谢

4

4 回答 4

3

根据 javadoc,InternetAddress.toUnicodeString() 方法应该为您提供解码为 un​​icode 字符的符合 RFC 822 的电子邮件地址。但“John Doe”根本不是符合 RFC 822 的电子邮件地址。这表明问题在于首先创建这些 InternetAddress 对象。

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


更新-

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

于 2012-04-12T07:24:21.743 回答
0

我会说,不可能。您应该选择在数据库中存储完整长度的电子邮件地址,或者存储电子邮件地址的 id(这需要单独的电子邮件地址表)。

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

于 2012-04-12T07:15:01.427 回答
0

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

于 2019-07-30T19:25:02.087 回答
-1

嗯...也许通过使用带有字符串参数的构造函数?请学习使用 Javadoc API - 您会比在这里提问更快地找到答案。

于 2012-04-12T07:16:50.907 回答