如何在java中将MimeReader的内容转换为字符串



对于SimpleMailMessage,您可以执行以下操作:

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;

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

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内容的好方法?

我可以考虑的一个选项是使用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);

最新更新