2013-10-25 68 views
0

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

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

结果,

ContactForm.contact("[email protected]").delivers #=> delivers email perfectly 

但是,这工作在命令行上。我真的不知道用链接做这件事的正确方法。我的意思是,我可以创建一个按钮,naviagates到send_email,然后我可以有一个这样的路径:

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

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

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

resque_mailer似乎是发送异步电子邮件的好方法。但是,为什么我需要这个外部宝石时,通过香草铁轨处理Ajax?

回答

0

这个概念应该是让表单远程提交。即在ContactsController中提交create方法。然后该方法会调用一个worker(resque/sidekiq)来发送电子邮件。

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

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

如果json结果与错误一起返回,那么您可以通过JS显示错误消息。