java - 在 JavaMail 中使用 message.getFrom() 时仅获取要显示的电子邮件地址

标签 java jakarta-mail

目前在使用 JavaMail 时,如果我使用 getFrom() 将消息分解成单独的部分,getFrom() 也会显示发件人的姓名。这可能是一个简单的问题,但您如何做到只返回电子邮件地址。对不起,如果这是一个简单的问题,但我似乎找不到答案。

最佳答案

事实证明,该地址已经为您解析过了。由于 JavaMail 愚蠢的额外抽象层,它返回 InternetAddress对象作为它们的 Address 父类(super class)。 Address 对象几乎没有用。您需要将它们转换回 InternetAddress,然后只获取电子邮件部分:

Address[] froms = message.getFrom();
String email = froms == null ? null : ((InternetAddress) froms[0]).getAddress();

关于java - 在 JavaMail 中使用 message.getFrom() 时仅获取要显示的电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5214372/

相关文章:

javax.mail.NoSuchProviderException : No provider for smtps

java - 从非静态字段更改静态引用?

java - 隐藏组件时如何将 Miglayout 行高缩小为零

smtp - SMTP 消息 ID 是否全局唯一?

JavaMail 内容传输编码问题

java - Android Studio 构建错误 : More than one file was found with OS independent path 'META-INF/gfprobe-provider.xml'

java - 如何在httpurlconnection android中添加参数

java - spring:mvcUrl 映射错误的 id

Java - 读取、操作和编写 WAV 文件

java - NoClassDefFound错误: javax/mail/Session