我正在使用 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)
我究竟做错了什么?
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): [...] 将邮件发送到指定的地址,忽略邮件本身中指定的任何收件人。
| 归档时间: |
|
| 查看次数: |
4696 次 |
| 最近记录: |