Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public SendRawEmailResult sendEmail(EmailData data, LambdaLogger logger) {
- try {
- final Session session = Session.getDefaultInstance(new Properties());
- // Create a new MimeMessage object.
- final MimeMessage message = new MimeMessage(session);
- // Add subject, from and to lines.
- message.setSubject(data.getSubject(), "UTF-8");
- message.setFrom(new InternetAddress(data.getFrom()));
- message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(String.join(",", data.getRecipients())));
- // Create a multipart/alternative child container.
- final MimeMultipart msg_body = new MimeMultipart("related");
- // Create a wrapper for the HTML and text parts.
- final MimeBodyPart wrap = new MimeBodyPart();
- // Define the HTML part.
- final MimeBodyPart htmlPart = new MimeBodyPart();
- // Encode the HTML content and set the character encoding.
- logger.log(renderTemplate(data, logger));
- htmlPart.setContent(MimeUtility
- .encodeText(renderTemplate(data, logger), "UTF-8", "B"), "text/html; charset=UTF-8");
- htmlPart.setHeader("Content-Transfer-Encoding", "base64");
- // Add the text and HTML parts to the child container.
- msg_body.addBodyPart(htmlPart);
- // Add the child container to the wrapper object.
- wrap.setContent(msg_body, "text/html; charset=UTF-8");
- // Create a multipart/mixed parent container.
- final MimeMultipart msg = new MimeMultipart("mixed");
- // Add the parent container to the message.
- message.setContent(msg, "text/html; charset=UTF-8");
- // Add the multipart/alternative part to the message.
- msg.addBodyPart(wrap);
- // Define the attachment
- attachImages(msg_body, "images/common/", "");
- attachImages(msg_body, "images/", "");
- // Send the email.
- final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- message.writeTo(outputStream);
- final RawMessage rawMessage = new RawMessage(ByteBuffer.wrap(outputStream.toByteArray()));
- final SendRawEmailRequest rawEmailRequest = new SendRawEmailRequest(rawMessage);
- logger.log("Email sent!");
- return client.sendRawEmail(rawEmailRequest);
- } catch (Exception e) {
- logger.log(e.getLocalizedMessage());
- return new SendRawEmailResult();
- }
- }
Add Comment
Please, Sign In to add comment