当前位置: 首页 > 知识库问答 >
问题:

Java 电子邮件:获取要在电子邮件地址旁边打印的名称

黄流觞
2023-03-14

使用 Java 发送电子邮件,我如何让名称打印在电子邮件地址旁边,最好是这种样式?

Joe A. Blow <joe.a.blow@host.org>

我把我的电子邮件列表放在a *里了。包含如下数据的属性文件:

email_list_3 = Bob Smith<bob.smith@acme.com>,Jane Doe<jane.doe@acme.com, Betty Crocker<betty.crocker@acme.com

我正在使用此函数将属性文件中的每个电子邮件列表(如“email_list_3”)作为数组列表返回:

private static ArrayList sete mail list(String email _ list _ name)抛出异常{ Properties props = new Properties();ArrayList email _ list = new ArrayList();

try {
    props.load(MailSender.class.getResourceAsStream("/email_lists.properties"));
    email_list.addAll(Arrays.asList(props.getProperty(email_list_name).split(",")));

}// end try
catch (Exception e) {
    logger.error("Failure populating email list: " + email_list_name + "\n",e);
}

return email_list;

}//结束函数setEmail列表()

接下来,我将收集电子邮件地址(我假设这些名字仍然与他们在一起?)到像这样的互联网地址数组中

ArrayList<String> recipientsArray    = null;
ArrayList<InternetAddress> addressTo = new ArrayList<InternetAddress>();

recipientsArray = getAnArrayListOfEmailAddresses();

for (String tempAddress: recipientsArray) {
    if (tempAddress != null) {
        addressTo.add(new InternetAddress(tempAddress));
    }
}

这就是我将地址插入电子邮件的方式:

 InternetAddress[] to = new InternetAddress[addressTo.size()];
 to                    = addressTo.toArray(to);

 // processed in a for loop
 tempAddress = (to[i]).getAddress();

 MimeMessage msg  =  null;
 msg     = new MimeMessage(session);
 msg.setSubject(subject);
 msg.setFrom(new InternetAddress(fromAddressStringl));
 msg.setRecipients(Message.RecipientType.TO, tempAddress);

对我来说,现在,它看起来像是让名字显示在我的电子邮件地址旁边,我使用了InternetAddress的另一个构造函数,它有两个参数,Address和name。

是这样吗,还是有一个设置可以更改,当Java从我的文件中解析名称地址组合项时,它会自动执行?

先谢谢你了

史蒂夫

共有1个答案

解博明
2023-03-14

你把事情弄得太复杂了。

您有一堆Internet地址对象,只需直接使用它们来设置收件人:

 InternetAddress[] to = new InternetAddress[addressTo.size()];
 to                    = addressTo.toArray(to);

 MimeMessage msg  = new MimeMessage(session);
 msg.setSubject(subject);
 msg.setFrom(new InternetAddress(fromAddressStringl));
 msg.setRecipients(Message.RecipientType.TO, to);

使用getAddress()将地址字段与个人姓名字段分开;不要那样做。

此外,您可以使用InternetAddress.parse()方法将您的属性解析为一个InternetAddress对象数组,而不是自己用逗号分隔。

 类似资料:
  • 问题内容: 我想在我的网站上使用自动填充/自动格式化的“收件人”字段,该字段的工作方式类似于GMail中的字段。 有谁知道jQuery这样的事情? 纯JavaScript?还是其他选择? 问题答案: 有很多的jquery位可以做到这一点,您可以在Google上搜索“ jquery autocomplete”,然后看看最喜欢哪个。 这是比较有名的一个:http : //docs.jquery.com

  • 查看以下,详细了解如何处理与 iPhone 手机配对的 M600 上的电子邮件。 阅读您的 M600 上的电子邮件 如果您在手机上使用电子邮件通知,那么在您收到新邮件时会在您的 M600 看到通知。 阅读电子邮件 轻触通知。 利用您的 M600 回复电子邮件 您可以利用您的手腕表回复邮件。 回复电子邮件 轻触通知查看所有邮件 从屏幕底部向上滑动,查看您可以执行的操作。 轻触 Reply(回复),并

  • Email的历史比Web还要久远,直到现在,Email也是互联网上应用非常广泛的服务。 几乎所有的编程语言都支持发送和接收电子邮件,但是,先等等,在我们开始编写代码之前,有必要搞清楚电子邮件是如何在互联网上运作的。 我们来看看传统邮件是如何运作的。假设你现在在北京,要给一个香港的朋友发一封信,怎么做呢? 首先你得写好信,装进信封,写上地址,贴上邮票,然后就近找个邮局,把信仍进去。 信件会从就近的小

  • Email的历史比Web还要久远,直到现在,Email也是互联网上应用非常广泛的服务。 几乎所有的编程语言都支持发送和接收电子邮件,但是,先等等,在我们开始编写代码之前,有必要搞清楚电子邮件是如何在互联网上运作的。 我们来看看传统邮件是如何运作的。假设你现在在北京,要给一个香港的朋友发一封信,怎么做呢? 首先你得写好信,装进信封,写上地址,贴上邮票,然后就近找个邮局,把信仍进去。 信件会从就近的小

  • 我正在尝试通过使用Java中的IMAP协议连接到ISP邮件服务器。我的要求是客户端提供邮件地址,用户名和密码。我必须连接邮件服务器并将邮件的连接存储到数据库中。在这里,邮件地址可能属于任何ISP。 javax.mail。服务器有一个连接方法(字符串主机、字符串用户名和字符串密码)。 我的问题是不同的ISP及其子域有不同的主机地址。 例如 gmail 主机地址 imap.gmail.com 雅虎主机

  • 我一直试图获取电子邮件正文与imap_fetchbody($stream,$msgno,$选项),但没有成功。 然后我尝试使用imap_fetchstructure($stream,$msgno),并使用各自的子类型手动解码每种类型,如:- 对于前两个,我可以用这样的东西来解码 但说到混合,我要么不知道,要么我该怎么办,要么我在哪里犯错。