Delivery Methods

底层选择邮件"发送"方式。

Rails 本身没有实现此功能,但提供了几种方式供我们选择。

调用 Rails 已有发送程序

delivery_method 默认已经有:

:smtp     => Mail::SMTP
:file     => Mail::FileDelivery
:sendmail => Mail::Sendmail
:test     => Mail::TestMailer

我们可以根据需求,选择、配置、使用它们。

使用已有邮件服务

  • 如使用 gem 'letter_opener' 直接配置:

# config/environments/development.rb
config.action_mailer.delivery_method = :letter_opener
  • 如使用 gem 'aws-ses' 配置:

ActionMailer::Base.add_delivery_method :ses, AWS::SES::Base,
  :access_key_id     => 'abc',
  :secret_access_key => '123'

然后:

"新增"邮件服务

完全的"新增"邮件服务,难度上比较大。比较实际的做法是"继承"于已有的实现,并且在 Rails 里注册一下,然后使用。

1) "继承"于已有的实现(这里是 SMTP):

2) 在 Rails 里注册一下:

另,自带的 smtp、file、sendmail 及 test 已经注册。

3) 配置使用刚才新增的 delivery method:

在之后配置就变成了:

Rails 已有发送程序及 gem 'letter_opener' 都是用这种方式实现,之后提供给我们使用的。

其它内容

提供类方法:

最后更新于

这有帮助吗?