java邮件抄送和密件抄送不起作用

Mai*_*aik 0 java jakarta-mail

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

message.setRecipient(Message.RecipientType.TO, new InternetAddress("a@x.com"));
message.setRecipient(Message.RecipientType.CC, new InternetAddress("b@x.com"));
Run Code Online (Sandbox Code Playgroud)

a@x.com 正确收到消息(其中还标明了抄送地址),但 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));
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Bru*_*uno 5

Transport.send(message, message.getRecipients(Message.RecipientType.TO));
Run Code Online (Sandbox Code Playgroud)

您只是通过To:这种方式将其发送给现场的收件人。

见之间的区别Transport.send(Message)Transport.send(Message, Address[])

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

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