ActionMailerのいくつかの構成

1551 ワード

一般的にgmailを使用すると、次のように構成されます.

ActionMailer::Base.smtp_settings = {
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :domain               => "your_domain.com",
  :user_name            => "[email protected]",
  :password             => "xxxxxxx",
  :authentication       => :login,
  :enable_starttls_auto => true
}

しかし、gmailで送信する場合は、gmailに送信制限があることに注意してください.一般的には1日に500通のメールを送信します.また、頻繁に接続したりエラーが発生したりすると、gmailはログイン時に認証コードを入力するように要求します.構成に間違いがないかどうかをチェックしてもメールを送信できません.大半がこの認証コードか、送信メールの上限に達している問題です.
サーバに付属のsendmailプログラムを使用してemailを送信したい場合は、次のように構成できます.

ActionMailer::Base.delivery_method = :sendmail
ActionMailer::Base.sendmail_settings = {
  :location       => '/usr/sbin/sendmail',
  :arguments      => '-i -t'
}

どのようにsendmailをインストールするかについては、google之、私は鳥の兄のLinuxサーバーの本から詳しいチュートリアルと一般的な問題を解決する方法を見て、お勧めします.
RailsのconsoleではEmailの送信をテストできます.これは非常に有用な機能です.

class SystemMailer < ActionMailer::Base
  def test
     mail(:to => "[email protected]",:body => "Have a good day!", :subject => "test mail")
  end
end

コンソールを開く

rails c 

#      
SystemMailer.test.deliver

メールボックスをチェックして、受け取ったかどうか見てみましょう.