Guest User

Untitled

a guest
Nov 17th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.56 KB | None | 0 0
  1. public SendRawEmailResult sendEmail(EmailData data, LambdaLogger logger) {
  2. try {
  3. final Session session = Session.getDefaultInstance(new Properties());
  4.  
  5. // Create a new MimeMessage object.
  6. final MimeMessage message = new MimeMessage(session);
  7.  
  8. // Add subject, from and to lines.
  9. message.setSubject(data.getSubject(), "UTF-8");
  10. message.setFrom(new InternetAddress(data.getFrom()));
  11. message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(String.join(",", data.getRecipients())));
  12.  
  13. // Create a multipart/alternative child container.
  14. final MimeMultipart msg_body = new MimeMultipart("related");
  15.  
  16. // Create a wrapper for the HTML and text parts.
  17. final MimeBodyPart wrap = new MimeBodyPart();
  18.  
  19. // Define the HTML part.
  20. final MimeBodyPart htmlPart = new MimeBodyPart();
  21. // Encode the HTML content and set the character encoding.
  22. logger.log(renderTemplate(data, logger));
  23. htmlPart.setContent(MimeUtility
  24. .encodeText(renderTemplate(data, logger), "UTF-8", "B"), "text/html; charset=UTF-8");
  25. htmlPart.setHeader("Content-Transfer-Encoding", "base64");
  26.  
  27. // Add the text and HTML parts to the child container.
  28. msg_body.addBodyPart(htmlPart);
  29.  
  30. // Add the child container to the wrapper object.
  31. wrap.setContent(msg_body, "text/html; charset=UTF-8");
  32.  
  33. // Create a multipart/mixed parent container.
  34. final MimeMultipart msg = new MimeMultipart("mixed");
  35.  
  36. // Add the parent container to the message.
  37. message.setContent(msg, "text/html; charset=UTF-8");
  38.  
  39. // Add the multipart/alternative part to the message.
  40. msg.addBodyPart(wrap);
  41.  
  42. // Define the attachment
  43. attachImages(msg_body, "images/common/", "");
  44. attachImages(msg_body, "images/", "");
  45.  
  46. // Send the email.
  47. final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
  48. message.writeTo(outputStream);
  49. final RawMessage rawMessage = new RawMessage(ByteBuffer.wrap(outputStream.toByteArray()));
  50. final SendRawEmailRequest rawEmailRequest = new SendRawEmailRequest(rawMessage);
  51. logger.log("Email sent!");
  52. return client.sendRawEmail(rawEmailRequest);
  53. } catch (Exception e) {
  54. logger.log(e.getLocalizedMessage());
  55. return new SendRawEmailResult();
  56. }
  57. }
Add Comment
Please, Sign In to add comment