spring—如何在java中将MimerReader的内容转换成字符串?

nwsw7zdq  于 2021-06-26  发布在  Java
关注(0)|答案(1)|浏览(454)

对于SimpleEmailMessage,您只需执行以下操作:

SimpleMailMessage msg = new SimpleMailMessage()
msg.setFrom(..)
msg.setTo(..)
msg.setCc(..)
msg.setSubject(..)
msg.setText(..)

msg.toString()

结果是:

SimpleMailMessage: from=test@email.com; replyTo=null; to=test@email.com; ... text=Test Body;

这是一个很好的方法,可以很容易地查看SimpleEmailMessage的内容,但这是在您不发送附件的情况下。我有一个附件功能,我使用

MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setCc(InternetAddress.parse(cc));
helper.setSubject(subject);
helper.setText(body);
FileSystemResource file = new FileSystemResource(attachmentPath);
helper.addAttachment(fileName, file);

但当你这么做的时候 helper.toString() 或者 message.toString() ,它只返回一个java类文本。
有没有一种很好的方式可以像simplemailmessage那样以字符串格式显示mimemessage的内容?

zvms9eto

zvms9eto1#

我可以考虑的一个选项是使用jackson的objectmapper将对象转换为json并打印,如下所示:

MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setCc(InternetAddress.parse(cc));
helper.setSubject(subject);
helper.setText(body);
FileSystemResource file = new FileSystemResource(attachmentPath);
helper.addAttachment(fileName, file);

ObjectMapper mapper = new ObjectMapper();
String helperAsJson= mapper.writeValueAsString(helper);

相关问题