0

如何使用 rails 4 发送异步电子邮件?我的意思是,当我单击联系表单的“发送”按钮时,页面不会刷新,但电子邮件会被验证并发送,并且会向用户显示一条消息。

我已经action_mailer正确配置,并且有一个ContactForm邮件程序,其中一个contact操作将电子邮件地址作为参数。

因此,

ContactForm.contact("test@gmail.com").delivers #=> delivers email perfectly 

但这是在命令行上工作的。我真的不知道使用链接执行此操作的正确方法。我的意思是,我可以创建一个导航到 的按钮,send_email然后我可以有这样的路线:

get 'send_email', to: 'contact#sendemail'

然后我会有一个 sendemail 操作,其中包含如上所示的方法链。但这不是异步的,而且,我也不知道如何在发送电子邮件之前验证电子邮件的字段,或突出显示无效字段。

Ajax 和 JSON 响应是突出显示字段的关键吗?验证呢?

resque_mailer似乎是发送异步电子邮件的好方法。但是,当 ajax 被 vanilla rails 处理得这么好时,为什么我需要这个外部 gem?

4

2 回答 2

0

这个概念是让表单远程提交。即提交给create. ContactsController然后,该方法将调用工作人员 (resque/sidekiq) 来发送电子邮件。

create动作也可以响应json 。json,响应可以是成功或失败(有错误)。

在 AJAX 成功回调中,您可以触发警报、显示 div 或通知用户电子邮件已发送的任何内容。

如果返回的json结果带有erros,则可以通过JS显示错误信息。

于 2013-10-25T15:28:51.840 回答
0

这个Railscasts Episode #171演示了在DelayedJob的帮助下使用后台进程发送电子邮件

于 2013-10-25T16:14:41.580 回答