我正在尝试从后端服务器发送日历邀请。
这里涉及的功能:
fun sendEventInvite(to: String, subject: String, text: String) {
val message: MimeMessage = emailSender.createMimeMessage()
message.setRecipient(Message.RecipientType.TO, InternetAddress(to))
message.subject = subject
val messageBodyText = MimeBodyPart()
messageBodyText.setText(text)
val messageBodyEvent = MimeBodyPart()
messageBodyEvent.dataHandler = ByteArrayDataSource(createEvent(), "text/calendar")
val multiPart = MimeMultipart()
multiPart.addBodyPart(messageBodyEvent)
message.setContent(multiPart)
emailSender.send(message)
}
这是我格式化ICS文件的方式:
fun createEvent(): String{
return "BEGIN:VCALENDAR\n" +
"VERSION:2.0\n" +
"PRODID:-//GRTgaz Corporation//NONSGML Togaz'er//FR\n" +
"METHOD:REQUEST\n" +
"BEGIN:VEVENT\n" +
"UID:d8f5a0777-bf6d-25d2-f14a-52e7fe3df810\n" +
"DTSTAMP:20181119T105044Z\n" +
"ORGANIZER;CN=Baptiste Arnaud:MAILTO:baptiste.arnaud95@gmail.com\n" +
"DTSTART:20181120T150000\n" +
"DTEND:20181120T153000\n" +
"SUMMARY:Description\n" +
"END:VEVENT\n" +
"END:VCALENDAR\n")
}
该文件的内容应该起作用,因为它与工作示例完全相同。那么问题出在邮件头上吗?但是我不确定缺少什么。
应如何工作:
但是它显示如下:
答案 0 :(得分:1)
所有对addHeaderLine的调用都不是有效的MIME头,因此我不知道您要用什么完成。
使用MimeHelper只会使事情变得混乱。直接在MimeMessage对象上调用相应的方法,并在ics附件之前将“文本”添加为多部分中的第一个MimeBodyPart。