SendGrid 发送类型 text/plain 和 text/html

问题描述 投票:0回答:1

我有一项发送电子邮件的服务,一切正常,但我需要发送两种类型的电子邮件

text/html
text/plain
。我将其添加到我的代码中:

Content plainContent = new Content("text/plain", "This is plain content");

mail.addContent(htmlContent);

mail.addContent(plainContent);

信就不再来了

@Override
public void send(Message message) throws IOException {
    Personalization personalization = new Personalization();
    message.getSendTo().forEach(address -> personalization.addTo(new Email(address.getEmail(), address.getName())));

    Content htmlContent = new Content(message.getContentType(), message.getContent());

    Mail mail = new Mail();
    mail.setFrom(new Email(message.getSendFrom().getEmail(), message.getSendFrom().getName()));
    mail.addPersonalization(personalization);
    mail.setSubject(message.getSubject());
    mail.addContent(htmlContent);


    Request request = new Request();
    request.setMethod(Method.POST);
    request.setEndpoint("mail/send");
    request.setBody(mail.build());
    Response response = sendgrid.api(request);

    if (response.getStatusCode() != 202) {
        throw new RuntimeException(response.getBody());
    }
}
java spring-boot sendgrid sendmail
1个回答
3
投票

我找到了问题的答案:

{"errors":[{"message":"If present, text/plain must be first, followed by text/html, followed by any other content.","field":"content" ,"help":null}]}

需要简单地交换

setContent

第一

mail.addContent(plainContent);

然后

mail.addContent(htmlContent);

© www.soinside.com 2019 - 2024. All rights reserved.