我有一个服务,发送电子邮件和一切工作正常,但我需要发送2种类型的电子邮件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());
}
}发布于 2022-08-31 15:29:03
我找到了我的问题的答案:{"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);
https://stackoverflow.com/questions/73555591
复制相似问题