java邮件CC和BCC无法正常工作

时间:2014-07-24 13:03:19

标签: java javamail

我正在使用javax.mail发送一些电子邮件。 它工作正常,但它不会将消息发送到CC / BCC

message.setRecipient(Message.RecipientType.TO, new InternetAddress("a@x.com"));
message.setRecipient(Message.RecipientType.CC, new InternetAddress("b@x.com"));

a@x.com正确地收到了消息(它也表示了CC地址),但是b @x.com没有收到消息

这里有完整的代码:

        // Get system properties
        Properties props = System.getProperties();

        // Setup mail server
        props.put("mail.smtp.host", "192.168.1.1");
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.auth", "true");

        // Crea un authenticator (per mandare mail anche all'esterno del dominio)
        Authenticator authenticator = new Interfaccia_CSR.SMTPAuthenticator();

        // Get session
        Session session = Session.getInstance(props, authenticator);

        // Define message
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress("sender@x.com"));

        message.setRecipient(Message.RecipientType.TO, new InternetAddress("a@x.com"));
        message.setRecipient(Message.RecipientType.CC, new InternetAddress("b@x.com"));

        message.setSubject(oggetto);

        // create the message part 
        MimeBodyPart messageBodyPart = new MimeBodyPart();

        //fill message
        messageBodyPart.setText(testo);

        Multipart multipart = new MimeMultipart();
        multipart.addBodyPart(messageBodyPart);

        // Put parts in message
        message.setContent(multipart);

        // Send the message
        Transport.send(message, message.getRecipients(Message.RecipientType.TO));

我做错了什么?

2 个答案:

答案 0 :(得分:4)

尝试

Transport.send(message);

代替

答案 1 :(得分:4)

Transport.send(message, message.getRecipients(Message.RecipientType.TO));

您只能通过这种方式将其发送给To:字段中的收件人。

查看Transport.send(Message) and Transport.send(Message, Address[])

之间的区别
  
      
  • send(Message msg):[...]邮件将被发送到邮件中指定的所有收件人地址(从邮件返回)   方法getAllRecipients),使用适合每个的消息传输   地址

  •   
  • send(Message msg, Address[] addresses):[...]将邮件发送到指定的地址,忽略邮件中指定的任何收件人   本身。

  •