通过Amazon SES发送HTML电子邮件

11

我正在使用Amazon SES发送大量电子邮件。以下是我的代码:

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");
    }

我已经将我的HTML内容作为字符串赋值给变量“body”。

邮件发送成功。但我收到的是带有HTML格式的电子邮件。如何在邮件中发送HTML内容?更改代码中哪些部分可以解决这个问题?


收到的电子邮件是什么样子?你说的“我收到了邮件的HTML内容”是什么意思?你在哪个电子邮件客户端中查看邮件? - user684934
我收到了一封邮件,里面包含了<html>标签等原始的HTML代码。 - Neeraj
你使用的是哪个电子邮件客户端? - user684934
我正在使用亚马逊Java SDK以编程方式完成此操作。 - Neeraj
你使用什么电子邮件客户端来查看收到的电子邮件?如果你只是查看电子邮件的文本内容,它将显示为HTML标记,如果你使用能够呈现HTML的客户端,那么你将看到预期的结果,假设你在发送方已经做好了一切。 - user684934
1个回答

28

根据亚马逊SES开发者指南,您应该使用WithHtml方法:

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);          

1
如何使用Amazon SES API发送带有CSS的HTML模板电子邮件? - TedS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接