如何将Rails ApplicationMailer配置为使用API​​或RestClient代替smtp

问题描述

是否可以将Rails的ApplicationMailer(以前称为ActionMailer)配置为使用REST API而不是SMTP?

换句话说,替换

  self.smtp_settings = {
    :address => ENV['MAILER_URL'],:port => ENV['MAILER_PORT'],:domain => ENV['MAILER_DOMAIN'],:authentication => :login,:user_name => ENV['MAILER_USER'],:password => ENV['MAILER_PWD'],:enable_starttls_auto => true
  }

也许带有类似

的东西
config.action_mailer.delivery_method = :rest_client  # JUST A MADE UP EXAMPLE

config.action_mailer.rest_client = {
  api_auth_header:{"Authorization" => "Bearer #{ENV['MY_REST_MAILER_API_KEY']}",api_endpoint: ENV['MY_REST_MAILER_API_URL']
}

我看到了Sendgrid和其他ESP所提供的gem的特定gem,但是我正在寻找一种通用的ActionMailer-to-Rest解决方案,在其中可以指定任意api端点,等等,并且不与gem绑定(或提供gem的提供者),并且仍然具有ActionMailer提供的模板等功能。

完全跳过ActionMailer类并编写一个使用RestClient的新邮件程序类并不是不可能的,实际上,对于某些特殊情况,我们已经做到了。但是对于普通电子邮件,每次您只想创建新的电子邮件类型(customer_thank_you.html.haml,customer_welcome.html.haml等)时,它的处理速度较慢,更容易出错,并且肯定需要进行更多工作来手动处理模板渲染等。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)