我有一项发送电子邮件的服务,一切正常,但我需要发送两种类型的电子邮件
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());
}
}
我找到了问题的答案:
{"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);