我正在使用我的电子邮件存储在数据库中
InternetAddress.toUnicodeString()
。
它给了我这样的字符串:"John Doe" <doe@john.com>
问题:如何解析该字符串以将其转换回InternetAddress
?
谢谢
答案 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)