【发布时间】:2017-12-09 21:21:26
【问题描述】:
我正在使用 JavaMail api,我必须通过 Exchange 服务器发送电子邮件,然后在电子邮件正文中嵌入图像。为此,我使用 ExchangeService 与 Exchange 服务器建立连接。注意:如果是 SMTP,我会通过 Session 和 Authenticator。
我在这里面临的挑战是我最终必须使用 EmailMessage 来发送邮件。我没有选项在 EmailMessage 中设置嵌入消息(MIMEContent)并发送它。
try{
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
ExchangeCredentials credentials = new WebCredentials(userName, password, domain);
service.setCredentials(credentials);
service.setUrl(new URI(host));
EmailMessage msg = new EmailMessage(service);
msg.setSubject(subject); //email subject
msg.getFrom().setAddress(from);
msg.getToRecipients().add(to); //email receiver
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(bodyStart, "text/html");
// creates multi-part
MimeMultipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
MimeBodyPart imagePart = new MimeBodyPart();
imagePart.setHeader("Content-ID", "<123234325>");
imagePart.setDisposition(MimeBodyPart.INLINE);
imagePart.attachFile("C:/selenium/ma000xsspf01.png");
multipart.addBodyPart(imagePart);
msg.send(); //send email
}catch(Exception e){
}
请告诉我如何使用对象“msg”将其中的图像设置为嵌入式图像。
【问题讨论】:
-
您似乎将 Exchange Web 服务和 JavaMail 的 API 混合在一起。可能有一种方法可以只使用 EWS API 来做您想做的事情,但您需要 EWS 专家来帮助您。您或许可以使用 JavaMail API 创建邮件的 MIME 内容,然后使用 EWS
EmailMessage.setMimeContent方法。
标签: java jakarta-mail exchangewebservices