java - 在 java 中使用 mailGun API 将 InputStreamSource 作为附件发送
问题描述
我正在尝试发送带有附件的电子邮件,我的附件存储在 AWS 中,我下载它们并将它们存储在 HashMap<String,InputStreamSource> 中:下面是我的代码:
当我发送电子邮件时,邮件没有送达,我也没有任何错误消息。请建议是否有任何解决方法。
public void sendSimpleMessageWithAttachment(String from, String to, String subject, String content, boolean isHtml, Map<String, InputStreamSource> attachments) throws UnirestException {
// Prepare message using a Spring helper
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, CharEncoding.UTF_8);
attachments.forEach((k, v) -> {
try {
message.addAttachment(k, v);
} catch (MessagingException e) {
log.warn("Attachment could not be added to the email '{}', '{}'", subject, k);
}
});
HttpResponse<JsonNode> request = Unirest.post("https://api.mailgun.net/v3/" + "DOMAIN.com" + "/messages.mime")
.basicAuth("api", "key-XXXXXXXXXXXXXXXXXXXXXXXXXXXX")
.header("content-type", "multipart/form-data")
.field("from",from)
.field("to", to)
.field("subject", subject)
.field("html", content)
.field("message",message)
.asJson();
log.info("Response : Message" +String.valueOf(request.getBody()));
} catch (Exception e) {
if (log.isDebugEnabled()) {
log.warn("Email could not be sent to user '{}'", to, e);
} else {
log.warn("Email could not be sent to user '{}': {}", to, e.getMessage());
}
}
}
解决方案
推荐阅读
- java - 如何删除这个 Jason 响应(时间戳、状态、错误、路径)?我只想获取对象数据
- amazon-web-services - 在浏览器中使用 Amazon S3 SDK 进行分段上传
- php - PHP 以程序方式创建表单
- reactjs - 使用 React Modal 平滑过渡
- java - 如何处理来自单个 RequestBody 的多个 HttpMessageNotReadableException?
- git - 恢复到以前的 SSH 公钥
- ios - Swift Fortune Wheel 变色问题
- node.js - VsCode远程连接在远程服务器上创建节点进程?
- python - 如何创建组列
- reactjs - 我需要导入什么才能在 FullCalendar 中使用主题?