我在春天的帮助下发送邮件,其中我想在CC中使用多个电子邮件ID,所有人都收到邮件但问题是当他们在rackspace(apps.rackspace.com)中打开电子邮件时它只显示一封电子邮件在CC中的id,但实际上有多个电子邮件ID,当我在Mozilla Thunderbird中打开相同的邮件时,它会显示我在邮件CC中设置的所有电子邮件ID
机架空间中的cc显示为 CC:test@mydomain.com(这里有3个cc的电子邮件ID,但机架空间只显示一个)
Mozilla Thunderbird中的cc显示为 CC:test @ mydomain.com,test2 @mydomain.com,test3 @mydomain.com(此处显示cc中的所有3个电子邮件ID)
我的邮件发送代码是:
这里是我在下面的代码中使用的类,是的,我正在初始化这个我没有在这里显示的对象
JavaMailSender mailConfig;
MimeMessageHelper helper;
MimeMessage message;
String[] to;
String[] cc;
try {
message.setContent(msg, "text/html; charset=utf-8");
message.setHeader("Content-Type", "text/html; charset=utf-8");
if (toEmailIds == null) {
helper.setTo(to);
} else {
String[] toIds = toEmailIds.split(",");
for(String toAddress : toIds){
helper.addTo(toAddress);
}
// helper.setTo(toIds); tried this too but it doesnot make any change
}
if (ccEmailIds != null) {
for(String ccAddress : ccEmailIds){
helper.addCc (ccAddress);
}
// helper.setCc(ccEmailIds);
}
if (subject == null) {
helper.setSubject(defaultSubject);
} else {
helper.setSubject(subject);
}
SendMailByThread sendmailthread = new SendMailByThread(mailConfig, message);
new Thread(sendmailthread).start();
} catch (Exception e) {
isSentSuccessfully = false;
StringBuilder sb = new StringBuilder("cannot send mail to : ");
sb.append(Arrays.toString(to));
sb.append(" \nerror message is : ");
sb.append(e.getMessage());
sb.append(" \nemail content is : \n");
sb.append(msg);
log.error(sb.toString(), e);
sb = null;
}
return isSentSuccessfully;
答案 0 :(得分:1)
经过一些试验和错误,我得到了解决方案,
现在我在MimeMessage消息中设置收件人 像这样
Address[] ia = new InternetAddress[toIds.length];
int i = 0;
for (String address : toIds) {
ia[i] = new InternetAddress(address);
i++;
}
message.addRecipients(RecipientType.TO, ia);
将MimeMessageHelper助手中的emailids设置为
helper.addTo(toAddress);
它解决了我的问题,我也可以在机架空间中看到所有收件人。 :)