我通过使用将我的电子邮件存储在数据库中
InternetAddress.toUnicodeString()
。
它给了我这样的字符串:"John Doe" <doe@john.com>
问题:如何解析该字符串以便将其转换回InternetAddress
?
谢谢
我通过使用将我的电子邮件存储在数据库中
InternetAddress.toUnicodeString()
。
它给了我这样的字符串:"John Doe" <doe@john.com>
问题:如何解析该字符串以便将其转换回InternetAddress
?
谢谢
根据 javadoc,InternetAddress.toUnicodeString() 方法应该为您提供解码为 unicode 字符的符合 RFC 822 的电子邮件地址。但“John Doe”根本不是符合 RFC 822 的电子邮件地址。这表明问题在于首先创建这些 InternetAddress 对象。
当然,没有办法“解析”字符串“John Doe”并提取有效的电子邮件地址。信息根本无法提取。也许您可以在本地通讯录数据库中进行查找。
更新-
变成"John Doe" <doe@john.com>
InternetAddress 的方法是使用InternetAddress(String)
构造函数(javadoc)。这将自动解析输入字符串。
我会说,不可能。您应该选择在数据库中存储完整长度的电子邮件地址,或者存储电子邮件地址的 id(这需要单独的电子邮件地址表)。
只要确保您的 InternetAddress 对象有效。尝试对其调用 validate() 以查看它是否真的正确。
您可以在您的情况下使用新的 InternetAddress(emailAddress,personalName) 方法。
嗯...也许通过使用带有字符串参数的构造函数?请学习使用 Javadoc API - 您会比在这里提问更快地找到答案。