2024年6月20日
MailHog下载启动
1025是smpt服务端口,8025是web访问端口
主要的两个代码函数
public void sendEmailWithFile(SendEmailInfo info) throws MessagingException, UnsupportedEncodingException {
// 创建一个邮件消息
MimeMessage message = getJavaMailSender().createMimeMessage();
// 创建 MimeMessageHelper,指定 boolean multipart 参数为 true
MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
// 发件人邮箱和名称
helper.setFrom(username);
// 收件人邮箱
helper.setTo(info.getEmail());
// 邮件标题
helper.setSubject(info.getTitle());
// 邮件正文,第二个参数表示是否是HTML正文
helper.setText(info.getContent(), info.getCheckHtml());
// 附件有报错先不加 =============
// 添加附件,指定附件名称、文件的 Inputstream 流 以及 Content-Type
// Map<String, InputStream> fileMap = info.getFileMap();
// for (Map.Entry<String, InputStream> entry : fileMap.entrySet()) {
// String fileName = entry.getKey();
// InputStream input = entry.getValue();
// helper.addAttachment(fileName,
// () -> input,
// "application/octet-stream");
// }
JavaMailSenderImpl sender = getJavaMailSenderDEBUGMailHog();
// 发送
sender.send(message);
}
private JavaMailSenderImpl getJavaMailSenderDEBUGMailHog() {
JavaMailSenderImpl sender = new JavaMailSenderImpl();
sender.setHost("127.0.0.1"); // 设置邮箱服务器
sender.setPort(1025); // 设置端口
sender.setUsername(null); // 设置用户名 mailhog不用
sender.setPassword(null); // 设置密码 mailhog不用
sender.setProtocol("smtp"); // 设置协议 其他的不支持,包括smtps
Properties properties = new Properties(); // 配置项
properties.put("mail.smtp.auth", false);
properties.put("mail.smtp.timeout", "25000");
properties.put("mail.smtp.starttls.enable", "false"); // 关闭STARTTLS
properties.put("mail.smtp.ssl.enable", "false"); // 关闭SSL
sender.setJavaMailProperties(properties); // 设置配置项
return sender;
}
发送后,http://localhost:8025
然后解决附件报错的问题
上面代码示例里注掉的附件换成这种方式好了
// 添加附件,指定附件名称、文件
for (File f : info.getFileList()) {
helper.addAttachment(f.getName(), f);
}
Mailhog下载附件的位置:
不合适的地方请评论指正
点个赞再走👍
点个赞再走👍
点个赞再走👍