質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

1767閲覧

Ruby net/smtp yahooからezwebにメールを送る 認証エラー

kazuyakazuya

総合スコア193

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

1クリップ

投稿2019/08/06 06:04

編集2019/08/06 06:04

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メソッドなどで認証させようとしたのですが
だめでした。。。
やり方が分からないので参考になるリンクまたは説明をお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ybbsmtp.mail.yahoo.co.jpはYahoo! BB会員専用のメールサーバです。

投稿2019/08/06 06:28

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2019/08/06 07:27

いっそのこと、練習用に自分でメールサーバを立てたほうがいいのではないでしょうか。他人のサーバにアクセス失敗ばかりしていると、最悪不正アクセスを疑われかねません。
kazuyakazuya

2019/08/06 07:32

視野に入れておきます。アドバイスありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問