首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于在rails中发送后台电子邮件的外部web服务

用于在rails中发送后台电子邮件的外部web服务
EN

Stack Overflow用户
提问于 2017-02-17 15:48:46
回答 1查看 211关注 0票数 0

我使用了本指令并向我的注册用户发送了“欢迎”邮件。但是这使得用户等待5-8秒,因为服务器正在尝试完成这个邮件。

我不希望用户等到邮件被发送后,立即看到“邮件已经发送”的消息。这给我带来了Rails的背景工作。Rails中的后台作业有许多选项,如delayed_job、Resque等。但就我所知,要使用这种解决方案:

1-创建后台作业2-运行此作业

假设我使用了一个后台作业解决方案,那么我还需要一些其他的东西来运行这个作业,比如cron作业.

我认为,仅仅为了发送注册和密码提醒电子邮件,另一个更容易的解决方案应该是可能的。我的意思是,像另一个外部服务一样,我会为我发送的每一种邮件创建一个模板,2-我会传递一些参数,比如receiver_email、template_id、receiver_username、password_link等等.这样,我就不需要任何背景工作,用户也不会等待。

我遇到了另外一些名为"sucher_punch“的创业板,但据我从人们的消息和发布的问题中了解到,使用heroku时,由于heroku dynos的某些原因,这个gem可能会失败,邮件可能不会发送,您也不知道。

不管怎样,rails开发人员处理这个电子邮件问题的一般方法是什么?也许我也可以像上面解释的那样使用sendgrid,对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-17 16:59:35

在后台发送电子邮件是一个常见的用例,Rails 4.2在ActionMailer中引入了一种ActionMailer方法来提供无缝的ActiveJob集成。

您不需要设置cron作业来检查后台队列中是否有作业。Sidekiq,Resque或DelayedJob会帮你处理这个问题。

似乎Sendgrid确实允许创建模板和发送变量内容来填充它们,但是这个特性并不会损害异步调用的好处。事实上,如果外部资源(Sendgrid)不可用,将其推迟到后台还有一个额外的好处,即不会影响用户体验。

您应该尝试安装您提到的后台处理解决方案之一(我推荐塞德基),并利用ActionMailer + ActiveJob集成

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42302051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档