我正在使用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));
我做错了什么?
答案 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)
:[...]将邮件发送到指定的地址,忽略邮件中指定的任何收件人 本身。