RUbyのNet/SMTPでyahooからezweb.ne.jpへメールを送りたいです。
(yahooアカウントはメール確認しだい削除します。)
ruby
1require 'net/smtp' 2a = Net::SMTP.new("ybbsmtp.mail.yahoo.co.jp",587) 3a.start('sample.com',"matsu_kazu4_0806", "matsu_kazu4_0806") {|smtp| 4 smtp.send_message("送りたいやつ", 'matsu_kazu4_0806@yahoo.co.jp', 'matsu-kazu4@ezweb.ne.jp') 5}
実行結果
↓
cmd
1C:\Users\u16154\Desktop\ruby_lesson>ruby sample2.rb 2C:/Ruby24-x64/lib/ruby/2.4.0/net/smtp.rb:981:in `check_auth_response': 535 authorization failed (#5.7.0) (Net::SMTPAuthenticationError) 3 from C:/Ruby24-x64/lib/ruby/2.4.0/net/smtp.rb:736:in `auth_plain' 4 from C:/Ruby24-x64/lib/ruby/2.4.0/net/smtp.rb:728:in `authenticate' 5 from C:/Ruby24-x64/lib/ruby/2.4.0/net/smtp.rb:565:in `do_start' 6 from C:/Ruby24-x64/lib/ruby/2.4.0/net/smtp.rb:518:in `start' 7 from sample2.rb:4:in `<main>'
まずはここについて
ruby
1a = Net::SMTP.new("ybbsmtp.mail.yahoo.co.jp",587)
yahoo SMTP利用方法
smtpが
url
1ybbsmtp.mail.yahoo.co.jp
ポートが(今回SSLを使っていないから)587番。
number
1587
次
ruby
1a.start('sample.com',"matsu_kazu4_0806", "matsu_kazu4_0806") {|smtp|
今回はstartの時点で認証をさせようとしました。リファレンス
引数にユーザーとパスワードをセットすると認証を行うみたいです。
ruby
1 ユーザー yahooID 2a.start('localhost',"matsu_kazu4_0806", "matsu_kazu4_0806") {|smtp|
・・・のはずです。
startに認証をするための引数を渡さなくても
ruby
1authenticate
など認証をしてくれるメソッドがあるのですが
そちらのほうでもエラーになります。
(認証タイプエラー)
最後はこれ
ruby
1smtp.send_message("送りたいやつ", 'matsu_kazu4_0806@yahoo.co.jp', 'matsu-kazu4@ezweb.ne.jp')
リファレンスを見ての通り
送る物 送信元アドレス 送信先アドレス
の3つをセットしています。
何が原因でエラーになっているのでしょうか?
とりあえずメールを受信したいです。(メールさえ届けばなんでもいい フィルタリングにかかっても)
前回の質問では
STARTTLSの前にAUTHしていることが原因のようだったので
startの引数に
ユーザーとパスワードを渡さず(startの段階で認証をさせない)
後で
authenticateメソッドなどで認証させようとしたのですが
だめでした。。。
やり方が分からないので参考になるリンクまたは説明をお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/06 07:25
2019/08/06 07:27
2019/08/06 07:32