我正在尝试从我的应用程序发送一封电子邮件,但它工作正常,但发送电子邮件需要30多秒,直到整个浏览器都被卡住了。
我该如何防止这种情况发生。有没有办法异步发送电子邮件?
我的电子邮件发送代码如下(写在服务类中)
def sendEmilService(User user) {
mailService.sendMail {
to user.email
from "mymail@gmail.com"
subject "Welcome "
body(view:"/email/emailsending",
model: [ inss: user.name])
}
}
答案 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")
}