通过 SMTP 发送 ICS 文件未在 Outlook 中正确显示?
Send ICS file via SMTP not correctly displayed in Outlook?
我正在尝试从我的后端服务器发送日历邀请。
这里是涉及到的函数:
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")
}
该文件内容应该可以工作,因为它与工作示例完全相同。所以问题来自邮件 headers ?但我不确定缺少什么。
它应该如何工作:
但是显示是这样的:
所有对 addHeaderLine 的调用都不是有效的 MIME headers 所以我不知道你想用它完成什么。
MimeHelper 的使用只是令人困惑的事情。直接在MimeMessage object 上调用相应的方法,并添加"text" 作为multipart 中的第一个MimeBodyPart,在ics 附件之前。
我正在尝试从我的后端服务器发送日历邀请。
这里是涉及到的函数:
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")
}
该文件内容应该可以工作,因为它与工作示例完全相同。所以问题来自邮件 headers ?但我不确定缺少什么。
它应该如何工作:
但是显示是这样的:
所有对 addHeaderLine 的调用都不是有效的 MIME headers 所以我不知道你想用它完成什么。
MimeHelper 的使用只是令人困惑的事情。直接在MimeMessage object 上调用相应的方法,并添加"text" 作为multipart 中的第一个MimeBodyPart,在ics 附件之前。