通过MimeMessageHelper发送邮件将邮件发送到所有CC但在机架空间中它仅在CC中显示一个电子邮件ID

时间:2015-04-24 10:00:27

标签: java email javamail rackspace

我在春天的帮助下发送邮件,其中我想在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;

1 个答案:

答案 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);

它解决了我的问题,我也可以在机架空间中看到所有收件人。 :)