gpt4 book ai didi

java - 为什么使用 Spring Mail 会丢失附件? ( Kotlin )

转载 作者:行者123 更新时间:2023-12-01 17:21:42 27 4
gpt4 key购买 nike

我想使用 Spring Boot 及其邮件库发送电子邮件。我是这样实现的:byteArray 不为 null 且不为空。

class Attachment(val fileName: String, val byteArray: ByteArray)
private val emailSender: JavaMailSender

[...]

private fun sendMessage(to: String, subject: String, text: String, attachments: List<Attachment>? = null) {
val message = emailSender.createMimeMessage()
val helper = MimeMessageHelper(message, true)
message.setContent(text, "text/html; charset=utf-8")

helper.setFrom(sender)
helper.setTo(to)
helper.setSubject(subject)

// add attachment
attachments?.forEach { attachment ->
helper.addAttachment(attachment.fileName, ByteArrayResource(attachment.byteArray))
}

try {
emailSender.send(message)
} catch (e: MailException) {
logger.warn("Email could not be sent: $to, reason: ${e.message}")
}
}

最佳答案

如果您使用 Spring 的邮件帮助器类,那么您还需要在那里指定 html 内容。

private fun sendMessage(to: String, subject: String, text: String, attachments: List<Attachment>? = null) {
val message = emailSender.createMimeMessage()
val helper = MimeMessageHelper(message, true)

helper.setFrom(sender)
helper.setTo(to)
helper.setSubject(subject)
helper.setText(text, true)

// add attachment
attachments?.forEach { attachment ->
helper.addAttachment(attachment.fileName, ByteArrayResource(attachment.byteArray))
}

try {
emailSender.send(message)
} catch (e: MailException) {
logger.warn("Email could not be sent: $to, reason: ${e.message}")
}
}

关于java - 为什么使用 Spring Mail 会丢失附件? ( Kotlin ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61281516/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com