[英]Using JavaMail to connect to an Exchange server with IMAP active
[英]JavaMail Exchange server MimeContent
我正在使用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”对象将其中的图像设置为嵌入式图像。
通过使用Datahandler
。我认为这是您正在寻找带有附件的邮件的工具 。
尝试以下方法:
MimeMessage msg = new MimeMessage(objSession);
MimeBodyPart imagePart = new MimeBodyPart();
String origFileName = null;
origFileName = /* Get File Name here*/;
// set the byte content
DataSource fds = new ByteArrayDataSource(/*Get Image Stream or content array*/, "image/jpeg");
imagePart.setDataHandler(new DataHandler(fds));
// this header connects the html content to the image mime part
imagePart.addHeader("Content-ID", "<" + newContentId + ">");
// set the name of resource - after encoding it with Mime utility
imagePart.setFileName(MimeUtility.encodeText(origFileName, "utf-8", null).replaceAll("\r\n", ""));
// set disposition as inline
imagePart.setDisposition(MimeBodyPart.INLINE);
MimeMultipart relatedMail = new MimeMultipart("related");
relatedMail.addBodyPart(imagePart);
msg.setContent(relatedMail);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.