如何使用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处理得那么好?
答案 0 :(得分:0)
概念是让表单远程提交。即在create
中提交ContactsController
方法。然后,该方法将调用worker(resque / sidekiq)来发送电子邮件。
create
操作也可以响应json。响应可以是成功或失败(有错误)。
在AJAX成功回调中,您可以触发警报,显示div或任何通知用户电子邮件已发送的内容。
如果使用错误返回json结果,则可以通过JS显示错误消息。
答案 1 :(得分:0)
此Railscasts Episode #171在[{3}}
的帮助下演示使用后台流程发送电子邮件