【问题标题】:Trigger email from grails controller从 grails 控制器触发电子邮件
【发布时间】:2016-12-08 05:09:00
【问题描述】:

我写了一个发送电子邮件的 groovy 控制器:

package com.test

class LibraryController {
    def mailService
    def sendEmail() {
        mailService.sendMail{
            to "test@gmail.com"
            from "receive@gmail.com"
            subject "Testing email system"
            body "Hi Checking the service"
        }
        render "test"
    }
}

当我使用 url -> http://server_name:8080/library/sendEmail 时,它会发送电子邮件。 我尝试将此作为命令添加到 cron(在 linux 服务器中),例如:

crontab -e
*/5 * * * * http://server_name:8080/library/sendEmail

但它并没有通过每 5 分钟运行一次来​​发送电子邮件。

请帮忙!

【问题讨论】:

  • 您需要更具体地说明您尝试过的内容以及您尝试过的无效内容。使用像cron job 这样的通用术语不会有帮助。您想从 *nix cron 作业中调用它吗?您想在您的 Grails 应用程序中将其设置为计划/计时器吗?您的问题没有包含很多关于您需要什么以及您尝试过什么的信息。
  • 编辑了问题 - 我想从 *nix cron 作业中调用它 - 因为我们有另一个调度程序来调用它,所以我不能使用石英
  • 我认为你的 cron 表达式应该是每 5 分钟一次 */5... 如果不是这样,除了没有设置电子邮件之外会发生什么? Grails有例外吗?访问日志中有命中吗?
  • 我没有遇到任何异常,我认为,cron 甚至没有在控制器中调用 sendEmail() 方法。

标签: email grails plugins cron quartz-scheduler


【解决方案1】:

在 cron 表达式中将 curl 放在 url 之前。 像这样:

*/5 * * * * curl http://server_name:8080/library/sendEmail

curlwget 将调用您的网址并发送电子邮件。

但是,如果我可以建议另一种在您的 grails 应用程序中安排任务的方法。我推荐Quartz-PluginScheduledExecutorService,最后一个是java原生的。

【讨论】:

    猜你喜欢
    • 2015-03-05
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 1970-01-01
    相关资源
    最近更新 更多