异步发送电子邮件

时间:2014-07-16 10:27:35

标签: grails groovy

我正在尝试从我的应用程序发送一封电子邮件,但它工作正常,但发送电子邮件需要30多秒,直到整个浏览器都被卡住了。

我该如何防止这种情况发生。有没有办法异步发送电子邮件?

我的电子邮件发送代码如下(写在服务类中)

def sendEmilService(User user) {
    mailService.sendMail {
        to  user.email
        from "mymail@gmail.com" 
        subject "Welcome  "
        body(view:"/email/emailsending",
        model: [ inss: user.name])
    }
}

2 个答案:

答案 0 :(得分:4)

您可以使用

def sendSomeMail(User user) {

    mailService.sendMail {
        async true // send mail async
        to  user.email
        from "mymail@gmail.com" 
        subject "Welcome  "
        body(view:"/email/emailsending",
        model: [ inss: user.name])
    }
}

答案 1 :(得分:3)

来自grails邮件插件文档:

<强>异步

该插件可以异步发送邮件(邮件在不同的线程上发送,sendMail邮件立即返回,而不是等待邮件实际发送)。为了异步发送,&#39; async true&#39;必须在传递给sendMail方法的闭包中,例如:

sendMail {
  async true
  to "john@g2one.com"
  subject "Hello John"
  html g.render(template:"myMailTemplate")
}