Advertisement
Guest User

Untitled

a guest
Nov 1st, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.44 KB | None | 0 0
  1. public <T> T prepareMessage(String subject, String sendTo, String htmlContent) throws MessagingException {
  2. Configuration config = getConfig();
  3.  
  4. final String userName = config.getServiceMailAddress();
  5. final String password = config.getServiceMailPassword();
  6. final String personalName = config.getServiceMailPersonalName();
  7.  
  8. final Properties mailProperties = config.getMailPropertiesValue();
  9.  
  10. Session session = Session.getInstance(mailProperties, new javax.mail.Authenticator() {
  11.  
  12. protected PasswordAuthentication getPasswordAuthentication() {
  13. return new PasswordAuthentication(userName, password);
  14. }
  15. });
  16.  
  17. try {
  18. Message message = new MimeMessage(session);
  19. message.setFrom(new InternetAddress(userName, personalName));
  20. message.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(sendTo));
  21. message.setSubject(subject);
  22. return (T) message;
  23.  
  24. } catch (UnsupportedEncodingException e) {
  25. //rethrow exception
  26. }
  27. }
  28.  
  29. @Override
  30. public synchronized void emailImages(String sendTo, String subject, String htmlContent, byte[][] images, ArrayList<String> imagesCid)
  31. {
  32. try {
  33. Message message = prepareMessage(subject, sendTo, htmlContent);
  34.  
  35. Multipart multipart = new MimeMultipart("related");
  36. MimeBodyPart mailBody = new MimeBodyPart();
  37. mailBody.setContent(htmlContent, "text/html; charset=utf-8");
  38.  
  39. mailBody.setHeader("Content-ID", "<file>");
  40. multipart.addBodyPart(mailBody);
  41. if (images != null && images.length > 0) {
  42. for (int i = 0; i < images.length; i++) {
  43. String cid = imagesCid.get(i);
  44.  
  45. MimeBodyPart messageBodyPart = new MimeBodyPart();
  46. messageBodyPart.setContent(images[i], "image/png");
  47. messageBodyPart.setFileName(cid);
  48. messageBodyPart.setHeader("Content-ID", "<" + cid + ">");
  49. messageBodyPart.setHeader("X-Attachment-Id", cid);
  50. messageBodyPart.setHeader("Content-Disposition", "inline; filename=" + cid + ".png");
  51. multipart.addBodyPart(messageBodyPart);
  52. }
  53. message.setHeader("Content-Disposition", "inline; filename=file.html");
  54. }
  55. message.setContent(multipart);
  56. Transport.send(message);
  57.  
  58. } catch (Throwable e) {
  59. //Rethrow exception
  60. }
  61. }
  62.  
  63. java.io.IOException: javax.mail.MessagingException: No MimeBodyPart content
  64. at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1244)
  65. at javax.mail.Transport.send0(Transport.java:254)
  66. at javax.mail.Transport.send(Transport.java:124)
  67. at com.company.util.mail.SMTPSender.emailImages(SMTPSender.java:101)
  68. ... 8 more
  69. Caused by: java.io.IOException: javax.mail.MessagingException: No MimeBodyPart content
  70. at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:105)
  71. at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:889)
  72. at javax.activation.DataHandler.writeTo(DataHandler.java:317)
  73. at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1608)
  74. at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1849)
  75. at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1196)
  76. ... 11 more
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement