欢迎进入Wiki » FAQ » 如何发送带有附件的邮件?

如何发送带有附件的邮件?

在2015-08-08 10:16上被李小翔修改
评论 (0) · 附件 (0) · 记录 · 信息

供稿人:王劲松

Toolkit、FWK 中分别集成了 mail、asynchronous-mail 插件,用来实现邮件发送功能,且后者依赖前者,可将邮件保存在数据库中实现定期发送、失败重试、发送审计等功能。

通过他们发送带有附件的邮件,代码示例如下:

def asynchronousMailService

File att = new File("....../这是个附件.doc")
if ( !att.exists() ) return

asynchronousMailService.sendMail {
    to          "zhangsan@abc.com"
    subject     "邮件标题"
    html        "<h1>HTML格式的邮件正文</h1>...."
    attachBytes att.getName(), FileUtils.fileMimeType(att.getName()), att.readBytes()
}

其中,attachBytes 就是添加邮件附件(实际会调用 AsynchronousMailMessageBuilder 中的 attachBytes(String name, String mimeType, byte[] content),此处注意要应用 File 类型的对象来进行相应的操作,mimetype 可调用FileUtils.fileMimeType(file.getName()) 来获取)。

此外,邮件标题、正文可以通过消息模板来实现自定义与国际化(messageTemplateService.getMessage)。

更多参考:

https://grails.org/plugin/mail

https://grails.org/plugin/asynchronous-mail

在2015-08-08 10:16上被李小翔创建

Copyright © 2013 北京博瑞开源软件有限公司
京ICP备12048974号