'mail'gemを使用してメールを送信するRubyスクリプトを書いています。
ローカルマシンでのSMTP設定は次のとおりです。
mailer_options:
address: smtp.gmail.com
port: 465
domain: gmail.com
user_name: [email protected]
password: example_password
authentication: :cram_md5
enable_starttls_auto: true
ssl: true
上記のSMTP設定で電子メールを送信しようとすると、次の例外が発生します。
/opt/rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/net/smtp.rb:968:in `check_auth_continue': 504 5.7.4 Unrecognized Authentication Type ka3sm12016635pbc.32 - gsmtp (Net::SMTPSyntaxError)from /opt/rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/net/smtp.rb:758:in `block in auth_cram_md5from /opt/rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/net/smtp.rb:941:in `critical'
from /opt/rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/net/smtp.rb:756:in `auth_cram_md5'
from /opt/rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/net/smtp.rb:731:in `authenticate'
from /opt/rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/net/smtp.rb:566:in `do_start'
from /opt/rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/net/smtp.rb:519:in `start'
from /opt/rtpg/vendor/bundle/ruby/2.0.0/gems/mail-2.5.4/lib/mail/network/delivery_methods/smtp.rb:112:in `deliver!'
from /opt/rtpg/vendor/bundle/ruby/2.0.0/gems/mail-2.5.4/lib/mail/message.rb:2129:in `do_delivery'
from /opt/rtpg/vendor/bundle/ruby/2.0.0/gems/mail-2.5.4/lib/mail/message.rb:234:in `deliver'
from /opt/rtpg/vendor/bundle/ruby/2.0.0/gems/mail-2.5.4/lib/mail/mail.rb:140:in `deliver'
このエラーを検索してみたところ、
SASL LOGIN認証に失敗しました:Ubuntu12.10でPostfixとDovecotを使用したRailsの無効な認証メカニズム
しかし、それは役に立ちません。
なぜMD5を使用しているのですか?TLS(SSL)を使用している場合は、接続自体が暗号化されており、Base64でエンコードされたパスワードでも安全であるため、これを行う必要はありません。
サーバーに接続すると、許可されている認証タイプがアドバタイズされます。Google Gmailの場合、ヘッダーは次のようになります。
250-AUTH LOGIN PLAIN XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN
CRAM-MD5
サポートされていません。他のすべてはそうです。
GoogleはおそらくMD5を削除しました。これは、MD5がいかに簡単に解読されるかを考えると、その方法ではセキュリティがほとんど提供されないためです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加