[解決済み] ホスト名がサーバー証明書と一致しない - メールを送信できない
2022-02-25 04:19:02
質問
私は電子メールメッセージを送信するためにポニーメールを使用しています(ローカルのWindowsボックスでActionMailerを動作させることができなかったため)。
user_mailer.rbファイルのコードには、Pony.mailメソッドへのこの呼び出しが含まれています。
Pony.mail({
:to => email_address,
:from => 'MyChairSales <[email protected]>',
:subject => subject,
:body => email_body,
:html_body => html_body,
:via => :smtp,
:via_options => {
:address => 'mail.mychairsales.com',
:port => '25',
:enable_starttls_auto => true,
:user_name => 'mychairs',
:password => 'thepassword',
:domain => "mychairsales.com" # the HELO domain provided by the client to the server
}
})
これはうまくいっていたのですが(この方法でメールを受信しました)、現在はエラー "ホスト名がサーバー証明書と一致しない"で失敗しています。
以下はスタックトレースのトップです。
["/usr/lib64/ruby/1.9.3/openssl/ssl-internal.rb:121:in `post_connection_check'",
"/usr/lib64/ruby/1.9.3/net/smtp.rb:585:in `tlsconnect'", "/usr/lib64/ruby/1.9.3
/net/smtp.rb:560:in `do_start'", "/usr/lib64/ruby/1.9.3/net/smtp.rb:519:in `start'",
"/home4/mychairs/ruby/gems/gems/mail-2.4.4/lib/mail/network/delivery_methods
/smtp.rb:144:in `deliver!'", "/home4/mychairs/ruby/gems/gems/mail-2.4.4/lib
/mail/message.rb:245:in `deliver!'", "/home4/mychairs/ruby/gems/gems/pony-1.4/lib
/pony.rb:166:in `deliver'", "/home4/mychairs/ruby/gems/gems/pony-1.4/lib
/pony.rb:138:in `mail'", "/home4/mychairs/rails_apps/chairsales/app/mailers
/user_mailer.rb:32:in `send_mail'", "/home4/mychairs/rails_apps/chairsales/app/mailers
/user_mailer.rb:23:in `send_password_reset_email'",...
何かご指導いただければ幸いです。
どのように解決するのですか?
遅ればせながら、私もこのエラーに遭遇しましたが、Ruby Mail gemを使用した場合です。 SMTPサーバがTLSをサポートしている場合、TLSを使用し、SSL証明書を認証しようとします。 証明書が使用されているホスト名と異なるホスト名で発行された場合、または証明書が認証できない場合(例えば自己署名でCAを信頼していない場合)、エラー "hostname does not match the server certificate" が発生して失敗します。
これを回避するには、 :openssl_verify_mode オプションを使用します。 これを OpenSSL::SSL::VERIFY_NONE に設定すると、証明書の検証を行わず、SMTP セッションを暗号化することができます。 あるいは、OpenSSLライブラリの中に他のオプションがあります。
あなたの例で言えば、次のようになります。
Pony.mail({
:to => email_address,
:from => 'MyChairSales <[email protected]>',
:subject => subject,
:body => email_body,
:html_body => html_body,
:via => :smtp,
:via_options => {
:openssl_verify_mode => OpenSSL::SSL::VERIFY_NONE,
:address => 'mail.mychairsales.com',
:port => '25',
:enable_starttls_auto => true,
:user_name => 'mychairs',
:password => 'thepassword',
:domain => "mychairsales.com" # the HELO domain provided by the client to the server
}
})
これは、Mail gemでも同様に動作します。
関連
-
[解決済み】OS X Yosemite 10.10.5 で [Ruby on Rails] 5 をインストールすると extconf が失敗して終了コード 1 エラーになる。
-
[解決済み] Ruby on Railsのランナー
-
[解決済み] 該当するルートがない [GET] "demo/hello"
-
[解決済み] erbでコメントを追加する最適な方法
-
[解決済み] Rails ExecJS::ProgramError in Pages#home?
-
[解決済み] Ruby on Railsでsimple_formを使うさまざまな方法|何が違うの?
-
[解決済み] Devise Admin Roleの追加【終了しました
-
[解決済み] Railsでグループとカウント
-
[解決済み] PHP ページから GMail SMTP サーバを使用してメールを送信する
-
[解決済み] [Solved] プログラムで送信したメールが自動的にスパムとしてマークされないようにするにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】bundle installが "Could not locate Gemfile "を返す。
-
[解決済み】なぜRuby on Railsは、http://localhost:3000 の代わりに http://0.0.0.0:3000 を使用するのですか?
-
[解決済み】ActionController::InvalidAuthenticityTokenについて
-
[解決済み] どのようにrailsでラジオボタンを正しく使用するには?
-
[解決済み] 該当するルートがない [GET] "demo/hello"
-
[解決済み] erbでコメントを追加する最適な方法
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] Oauth2 Instagram API "リダイレクトURIが登録されたリダイレクトURIと一致しない"
-
[解決済み] Ruby on Railsでsimple_formを使うさまざまな方法|何が違うの?
-
[解決済み] railsでcheck_boxをcheckedにする方法は?