我想使用javamailsender以个性化的称呼向多个人发送邮件。
收件人:Abc,xyz
邮件内容:
嗨Abc,...
我能够将邮件发送给多个人,但是无法找到一种方法来替换可用于收件人姓名的占位符。
答案 0 :(得分:3)
我认为您想要实现的目标存在一些矛盾。根据您的问题,假设其他人会收到一封电子邮件,其中包含“收件人:”列表,其中显示了多个收件人,例如至:Abc,xyz。但是,他们每个人的电子邮件内容都显示了自己的姓名...
结果将如下图所示:
我认为这只能在客户端(接收方)实现,而不能通过服务器(发送方)上的API实现。
如果您确实希望在发件人一方拥有某些控制权,那么您没有其他选择,但是只能发送几次电子邮件,具体取决于您想要多少收件人。
以下是供参考的示例:
private JavaMailSender emailSender;
public void sendSimpleMessage() {
String[] multipleRecepients = new String[] {"ABC", "xyz"};
String subject = " This is Email subject";
String text = "Hi {0} ,\r\n Nice to reach you through email.";
MessageFormat mf = new MessageFormat(text);
for (int i = 0 ; i < multipleRecepients.length; i++) {
SimpleMailMessage message = new SimpleMailMessage();
message.setTo(multipleRecepients[i]);
message.setSubject(subject);
message.setText(mf.format(new Object[] {multipleRecepients[i]}));
emailSender.send(message);
}
}
备注:
对于上述示例代码,请勿尝试将multipleRecepients数组放入setTo(...)[即message.setTo(multipleRecepients)]方法直接。否则,每个收件人都会收到不属于他/她的副本(称呼是另一个收件人的名字)。