/** * Send email. * * @param eMsg the e msg * @return true, if successful */ public boolean sendEmail(EmailMessage eMsg) { SendEmailRequest request = new SendEmailRequest().withSource(eMsg.getFromAddress()); Destination dest = new Destination().withToAddresses(eMsg.getToAddresses()); dest.setCcAddresses(eMsg.getToCcAddresses()); request.setDestination(dest); Content subjContent = new Content().withData(eMsg.getSubject()); Message msg = new Message().withSubject(subjContent); Content textContent = new Content().withData(eMsg.getTxtMessage()); Body body = new Body().withText(textContent); if (eMsg.getHtmlMessage() != null) { Content htmlContent = new Content().withData(eMsg.getHtmlMessage()); body.setHtml(htmlContent); } msg.setBody(body); request.setMessage(msg); try { emailClient.sendEmail(request); logger.debug(msg); } catch (AmazonClientException e) { logger.error(e.getMessage()); return false; } return true; }
public void send() throws IOException, TemplateException { client = createClient(); Destination destination = new Destination().withToAddresses(new String[]{email}); Content subject = new Content().withData(SUBJECT); String bodyContent = createBody(); Content textContent = new Content().withData(bodyContent); Body body = new Body().withText(textContent); Message message = new Message() .withSubject(subject) .withBody(body); SendEmailRequest request = new SendEmailRequest() .withSource(getSender()) .withDestination(destination) .withMessage(message); client.sendEmail(request); }
public void sendEmails(List<String> emailAddresses, String from, String subject, String emailBody) { Message message = new Message() .withSubject(new Content().withData(subject)) .withBody(new Body().withText(new Content().withData(emailBody))); getChunkedEmailList(emailAddresses) .forEach(group -> client.sendEmail(new SendEmailRequest() .withSource(from) .withDestination(new Destination().withBccAddresses(group)) .withMessage(message)) ); shutdown(); }
/** * {@inheritDoc} */ @Override public EmailResponse sendEmail(EmailRequest emailRequest) { try { SendEmailResult result = this.asyncSES.sendEmail(new SendEmailRequest() .withSource(this.emailConfig.from()) .withDestination(new Destination() .withToAddresses(emailRequest.getRecipientToList()) .withCcAddresses(emailRequest.getRecipientCcList()) .withBccAddresses(emailRequest.getRecipientBccList())) .withMessage(new Message() .withSubject(new Content().withData(emailRequest.getSubject())) .withBody(new Body().withHtml(new Content().withData(emailRequest.getBody()))))); return new EmailResponse(result.getMessageId(), result.getSdkHttpMetadata().getHttpStatusCode(), result.getSdkHttpMetadata().getHttpHeaders()); } catch (Exception ex) { LOGGER.error("Exception while sending email!!", ex); throw new AwsException(ex.getMessage(), ex); } }
/** * {@inheritDoc} */ @Override public void sendEmailAsync(EmailRequest emailRequest) { try { // Shall we use the Future object returned by async call? this.asyncSES.sendEmailAsync(new SendEmailRequest() .withSource(this.emailConfig.from()) .withDestination(new Destination() .withToAddresses(emailRequest.getRecipientToList()) .withCcAddresses(emailRequest.getRecipientCcList()) .withBccAddresses(emailRequest.getRecipientBccList())) .withMessage(new Message() .withSubject(new Content().withData(emailRequest.getSubject())) .withBody(new Body().withHtml(new Content().withData(emailRequest.getBody())))), this.asyncHandler); } catch (Exception ex) { LOGGER.error("Exception while sending email asynchronously!!", ex); } }
private void sendMail(final String from, final String to, final String subjectStr, final String bodyStr) { // Construct an object to contain the recipient address. Destination destination = new Destination() .withToAddresses(new String[] { to }); // Create the subject and body of the message. Content subject = new Content().withData(subjectStr); Content textBody = new Content().withData(bodyStr); Body body = new Body().withText(textBody); // Create a message with the specified subject and body. Message message = new Message().withSubject(subject).withBody(body); // TODO Assemble the email. // TODO Send the email. }
protected Void doInBackground(String...messages) { if( messages.length == 0 ) return null; // build the message and destination objects Content subject = new Content( "OpenCaption" ); Body body = new Body( new Content( messages[0] ) ); Message message = new Message( subject, body ); Destination destination = new Destination().withToAddresses( toAddress ); // send out the email SendEmailRequest request = new SendEmailRequest( fromVerifiedAddress, destination, message ); // END:asynctask SendEmailResult result = // START:asynctask sesClient.sendEmail( request ); // END:asynctask Log.d( "glass.opencaption", "AWS SES resp message id:" + result.getMessageId() ); // START:asynctask return null; }
@Override public boolean sendEmail(List<String> emails, String subject, String body) { if (emails != null && !emails.isEmpty() && !StringUtils.isBlank(body)) { final SendEmailRequest request = new SendEmailRequest().withSource(Config.SUPPORT_EMAIL); Destination dest = new Destination().withToAddresses(emails); request.setDestination(dest); Content subjContent = new Content().withData(subject); Message msg = new Message().withSubject(subjContent); // Include a body in both text and HTML formats Content textContent = new Content().withData(body).withCharset(Config.DEFAULT_ENCODING); msg.setBody(new Body().withHtml(textContent)); request.setMessage(msg); Para.asyncExecute(new Runnable() { public void run() { sesclient.sendEmail(request); } }); return true; } return false; }
private SendEmailRequest prepareMessage(SimpleMailMessage simpleMailMessage) { Destination destination = new Destination(); destination.withToAddresses(simpleMailMessage.getTo()); if (simpleMailMessage.getCc() != null) { destination.withCcAddresses(simpleMailMessage.getCc()); } if (simpleMailMessage.getBcc() != null) { destination.withBccAddresses(simpleMailMessage.getBcc()); } Content subject = new Content(simpleMailMessage.getSubject()); Body body = new Body(new Content(simpleMailMessage.getText())); SendEmailRequest emailRequest = new SendEmailRequest(simpleMailMessage.getFrom(), destination, new Message(subject, body)); if (StringUtils.hasText(simpleMailMessage.getReplyTo())) { emailRequest.withReplyToAddresses(simpleMailMessage.getReplyTo()); } return emailRequest; }
/** * Builds email content to be sent using an email sender. * @param message instance where content must be set. * @throws EmailException if setting mail content fails. */ @Override protected void buildContent(Message message) throws EmailException { Destination destination = new Destination(getTo()); if (getBCC() != null && !getBCC().isEmpty()) { destination.setBccAddresses(getBCC()); } if (getCC() != null && !getCC().isEmpty()) { destination.setCcAddresses(getCC()); } if (getSubject() != null) { Content subject = new Content(getSubject()); //set utf-8 enconding to support all languages subject.setCharset("UTF-8"); message.setSubject(subject); } if (getText() != null) { Body body = new Body(); Content content = new Content(getText()); //set utf-8 enconding to support all languages content.setCharset("UTF-8"); body.setText(content); message.setBody(body); } }
private com.amazonaws.services.simpleemail.model.Message createMessage(Exchange exchange) { com.amazonaws.services.simpleemail.model.Message message = new com.amazonaws.services.simpleemail.model.Message(); Boolean isHtmlEmail = exchange.getIn().getHeader(SesConstants.HTML_EMAIL, false, Boolean.class); String content = exchange.getIn().getBody(String.class); if (isHtmlEmail) { message.setBody(new Body().withHtml(new Content().withData(content))); } else { message.setBody(new Body().withText(new Content().withData(content))); } message.setSubject(new Content(determineSubject(exchange))); return message; }
public static void emailVerification(String name, String email, UUID uuid, String username, String responseServletUrl, ServletConfig config) throws EmailUtilException { String fromEmail = config.getServletContext().getInitParameter("return_email"); if (fromEmail == null || fromEmail.isEmpty()) { logger.error("Missing return_email parameter in the web.xml file"); throw(new EmailUtilException("The from email for the email facility has not been set. Pleaese contact the OpenChain team with this error.")); } String link = responseServletUrl + "?request=register&username=" + username + "&uuid=" + uuid.toString(); StringBuilder msg = new StringBuilder("<div>Welcome "); msg.append(name); msg.append(" to the OpenChain Certification website.<br /> <br />To complete your registration, click on the following or copy/paste into your web browser <a href=\""); msg.append(link); msg.append("\">"); msg.append(link); msg.append("</a><br/><br/>Thanks,<br/>The OpenChain team</div>"); Destination destination = new Destination().withToAddresses(new String[]{email}); Content subject = new Content().withData("OpenChain Registration [do not reply]"); Content bodyData = new Content().withData(msg.toString()); Body body = new Body(); body.setHtml(bodyData); Message message = new Message().withSubject(subject).withBody(body); SendEmailRequest request = new SendEmailRequest().withSource(fromEmail).withDestination(destination).withMessage(message); try { AmazonSimpleEmailServiceClient client = getEmailClient(config); client.sendEmail(request); logger.info("Invitation email sent to "+email); } catch (Exception ex) { logger.error("Email send failed",ex); throw(new EmailUtilException("Exception occured during the emailing of the invitation",ex)); } }
public static void emailUser(String toEmail, String subjectText, String msg, ServletConfig config) throws EmailUtilException { String fromEmail = config.getServletContext().getInitParameter("return_email"); if (fromEmail == null || fromEmail.isEmpty()) { logger.error("Missing return_email parameter in the web.xml file"); throw(new EmailUtilException("The from email for the email facility has not been set. Pleaese contact the OpenChain team with this error.")); } if (toEmail == null || toEmail.isEmpty()) { logger.error("Missing notification_email parameter in the web.xml file"); throw(new EmailUtilException("The to email for the email facility has not been set. Pleaese contact the OpenChain team with this error.")); } Destination destination = new Destination().withToAddresses(new String[]{toEmail}); Content subject = new Content().withData(subjectText); Content bodyData = new Content().withData(msg.toString()); Body body = new Body(); body.setHtml(bodyData); Message message = new Message().withSubject(subject).withBody(body); SendEmailRequest request = new SendEmailRequest().withSource(fromEmail).withDestination(destination).withMessage(message); try { AmazonSimpleEmailServiceClient client = getEmailClient(config); client.sendEmail(request); logger.info("User email sent to "+toEmail+": "+msg); } catch (Exception ex) { logger.error("Email send failed",ex); throw(new EmailUtilException("Exception occured during the emailing of a user email",ex)); } }
public static void emailAdmin(String subjectText, String msg, ServletConfig config) throws EmailUtilException { String fromEmail = config.getServletContext().getInitParameter("return_email"); if (fromEmail == null || fromEmail.isEmpty()) { logger.error("Missing return_email parameter in the web.xml file"); throw(new EmailUtilException("The from email for the email facility has not been set. Pleaese contact the OpenChain team with this error.")); } String toEmail = config.getServletContext().getInitParameter("notification_email"); if (toEmail == null || toEmail.isEmpty()) { logger.error("Missing notification_email parameter in the web.xml file"); throw(new EmailUtilException("The to email for the email facility has not been set. Pleaese contact the OpenChain team with this error.")); } Destination destination = new Destination().withToAddresses(new String[]{toEmail}); Content subject = new Content().withData(subjectText); Content bodyData = new Content().withData(msg.toString()); Body body = new Body(); body.setHtml(bodyData); Message message = new Message().withSubject(subject).withBody(body); SendEmailRequest request = new SendEmailRequest().withSource(fromEmail).withDestination(destination).withMessage(message); try { AmazonSimpleEmailServiceClient client = getEmailClient(config); client.sendEmail(request); logger.info("Admin email sent to "+toEmail+": "+msg); } catch (Exception ex) { logger.error("Email send failed",ex); throw(new EmailUtilException("Exception occured during the emailing of the submission notification",ex)); } }
/** * Email to notify a user that their profiles was updated * @param username * @param email * @param config * @throws EmailUtilException */ public static void emailProfileUpdate(String username, String email, ServletConfig config) throws EmailUtilException { String fromEmail = config.getServletContext().getInitParameter("return_email"); if (fromEmail == null || fromEmail.isEmpty()) { logger.error("Missing return_email parameter in the web.xml file"); throw(new EmailUtilException("The from email for the email facility has not been set. Pleaese contact the OpenChain team with this error.")); } StringBuilder msg = new StringBuilder("<div>The profile for username "); msg.append(username); msg.append(" has been updated. If you this update has been made in error, please contact the OpenChain certification team."); Destination destination = new Destination().withToAddresses(new String[]{email}); Content subject = new Content().withData("OpenChain Certification profile updated [do not reply]"); Content bodyData = new Content().withData(msg.toString()); Body body = new Body(); body.setHtml(bodyData); Message message = new Message().withSubject(subject).withBody(body); SendEmailRequest request = new SendEmailRequest().withSource(fromEmail).withDestination(destination).withMessage(message); try { AmazonSimpleEmailServiceClient client = getEmailClient(config); client.sendEmail(request); logger.info("Notification email sent for "+email); } catch (Exception ex) { logger.error("Email send failed",ex); throw(new EmailUtilException("Exception occured during the emailing of the submission notification",ex)); } }
public static void emailPasswordReset(String name, String email, UUID uuid, String username, String responseServletUrl, ServletConfig config) throws EmailUtilException { String fromEmail = config.getServletContext().getInitParameter("return_email"); if (fromEmail == null || fromEmail.isEmpty()) { logger.error("Missing return_email parameter in the web.xml file"); throw(new EmailUtilException("The from email for the email facility has not been set. Pleaese contact the OpenChain team with this error.")); } String link = responseServletUrl + "?request=pwreset&username=" + username + "&uuid=" + uuid.toString(); StringBuilder msg = new StringBuilder("<div>To reset the your password, click on the following or copy/paste into your web browser <a href=\""); msg.append(link); msg.append("\">"); msg.append(link); msg.append("</a><br/><br/><br/>The OpenChain team</div>"); Destination destination = new Destination().withToAddresses(new String[]{email}); Content subject = new Content().withData("OpenChain Password Reset [do not reply]"); Content bodyData = new Content().withData(msg.toString()); Body body = new Body(); body.setHtml(bodyData); Message message = new Message().withSubject(subject).withBody(body); SendEmailRequest request = new SendEmailRequest().withSource(fromEmail).withDestination(destination).withMessage(message); try { AmazonSimpleEmailServiceClient client = getEmailClient(config); client.sendEmail(request); logger.info("Reset password email sent to "+email); } catch (Exception ex) { logger.error("Email send failed",ex); throw(new EmailUtilException("Exception occured during the emailing of the password reset",ex)); } }
@Override public CompletableFuture<Boolean> send(Mail mailMessage) throws MailException { Message message = new Message(); message.setSubject(new Content(mailMessage.getSubject()).withCharset(Charsets.UTF_8.toString())); message.setBody(new Body(new Content(mailMessage.getText()).withCharset(Charsets.UTF_8.toString()))); Destination destination = new Destination(asList(mailMessage.getTo())); Optional.ofNullable(mailMessage.getCc()) .filter(cc -> cc.length > 0) .ifPresent(cc -> destination.setCcAddresses(asList(cc))); Optional.ofNullable(mailMessage.getBcc()) .filter(cc -> cc.length > 0) .ifPresent(cc -> destination.setBccAddresses(asList(cc))); SendEmailRequest sendEmailRequest = new SendEmailRequest(composeSource(mailMessage).toString(), destination, message); Optional.ofNullable(mailMessage.getReplyTo()) .ifPresent(r -> sendEmailRequest.setReplyToAddresses(asList(r))); return CompletableFuture.supplyAsync(() -> { double totalWait = rateLimiter.acquire(); if (totalWait > 5) { logger.warn("rate limit wait too long: " + totalWait + " seconds"); } SendEmailResult emailResult = client.sendEmail(sendEmailRequest); if (logger.isDebugEnabled()) { logger.debug("sent mail messageId:{}, body:\n{}", emailResult.getMessageId(), mailMessage); } else { logger.info("sent mail to {}, messageId:{}", destination, emailResult.getMessageId()); } return true; }, executor).handle((result, e) -> { if (e != null) { logger.warn("fail send mail to " + destination + ", error:" + e.getMessage()); return false; } return true; }); }