事象
RailsでActionMailer、Postfix経由でメールの送信をしようとしたところ、
以下の様なエラーが発生
FATAL -- :
OpenSSL::SSL::SSLError (hostname "localhost" does not match the server certificate):
その時のActionMailerの設定がこちら
config/environments/production.rb
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default_url_options = { :host => 'xxxx.com' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => 'localhost'
}
原因
デフォルトではSMTPサーバにTLSを使って接続しようとするようで、
hostname "localhost"がないと怒られている
解決策
enable_starttls_autoをfalseに設定する
config/environments/production.rb
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default_url_options = { :host => 'xxxx.com' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => 'localhost',
:enable_starttls_auto => false
}
ちょっとハマりましたが、メールが送れるようになって良かったです。