gpt4 book ai didi

email - 使用Groovy在邮件中发送iCalendar邀请

转载 作者:行者123 更新时间:2023-12-02 14:43:21 28 4
gpt4 key购买 nike

如何使用 grails 通过邮件发送 icalendar 邀请。有一个名为“ ic-alendar:0.4.0 ”的插件,但是我找不到任何解决方案如何使用此插件通过发送邮件。grails mail API

谢谢。

最佳答案

您必须使用icalendar插件以字符串形式创建日历邀请,将其转换为byte [],然后将其作为文件附加到邮件插件。

这是一种用于将附件生成为byte []的方法(我对我的应用程序SquadPoint.com具有游戏的概念,因此我将其传递给封装邀请中的相关数据):

import ch.silviowangler.groovy.util.builder.ICalendarBuilder
//...

/**
* Create a calendar event for sending with an email as a .ics attachment
* @param game
* @param timeZoneId
* @return
*/
byte[] calendarEventAsBytes(Game game, timeZoneId) {
def organiserName = getOrganiserName(game)
def organiserEmail = getOrganiserEmail(game)

def builder = new ICalendarBuilder()
builder.calendar {
events {
event( start: game.dateTime,
end: game.dateTime.plusHours(1),
summary: "Game ${game.venue ? 'at ' + game.venue : ''}",
timezone: timeZoneId) {

organizer(name: organiserName, email: organiserEmail)
}
}
}

builder.cal.toString().getBytes('UTF-8')
}

然后将其发送到电子邮件中:
def sendOutTeams(Game game) {

// some set up..

sesMail {

to email
subject "${organiserName} has selected teams (via Squadpoint.com)"
html groovyPageRenderer.render(template: '/email-templates/canYouPlay', model: emailModel)
attach "game.ics", "text/calendar", calendarEventAsBytes(game, timeZoneId)
}
}

我使用AWS插件来使用SES发送电子邮件(因此关闭了sesMail配置),但应该与常规Grails Mail插件非常相似,例如:
sendMail {
multipart true
to email
subject "a subject"
body "test"
attach "game.ics", "text/calendar", calendarEventAsBytes(game, timeZoneId)
}

关于email - 使用Groovy在邮件中发送iCalendar邀请,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23805497/

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