【发布时间】:2020-10-19 23:07:32
【问题描述】:
是否可以将 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 等)时,它的速度较慢、更容易出错,而且手动处理模板渲染等的工作肯定会更多。 .
【问题讨论】:
标签: ruby-on-rails api actionmailer