Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sending HTML email through amazon ses

I am sending bulk emails using amazon ses. My code is given below

public void sendMail(String sender, LinkedList<String> recipients, String subject, String body) {
    Destination destination = new Destination(recipients);
    try {
        ACCESS_KEY = EmailSender.prop.getProperty("accessKey");
        SECRET_KEY = EmailSender.prop.getProperty("secretKey");

        Content subjectContent = new Content(subject);
        Content bodyContent = new Content(body);
        Body msgBody = new Body(bodyContent);
        Message msg = new Message(subjectContent, msgBody);

        SendEmailRequest request = new SendEmailRequest(sender, destination, msg);

        AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);
        AmazonSimpleEmailServiceClient sesClient = new AmazonSimpleEmailServiceClient(credentials);
        SendEmailResult result = sesClient.sendEmail(request);

        System.out.println(result + "Email sent");  
    }catch(Exception e) {
        System.out.println("Exception from EmailSender.java. Email not send");
    }

Here I have given my html content as string to the variable "body".

The mail sent successfully. But I got the html content as email. How to send html content in mail. What changes in the code will solve this issue?

like image 311
Neeraj Avatar asked Dec 10 '12 13:12

Neeraj


1 Answers

From the Amazon SES developerGuide:

You should use the WithHtml method:

Content subjContent = new Content().withData("Test of Amazon SES");
Message msg = new Message().withSubject(subjContent);

// Include a body in both text and HTML formats
Content textContent = new Content().withData("Hello - I hope you're having a good day.");
Content htmlContent = new Content().withData("<h1>Hello - I hope you're having a good day.</h1>");
Body body = new Body().withHtml(htmlContent).withText(textContent);
msg.setBody(body);          
like image 84
Gerard Muñoz Martínez Avatar answered Sep 27 '22 19:09

Gerard Muñoz Martínez