2015-11-25 24 views
9

私は、urlの応答ステータスをチェックするrubyスクリプトを作成しています。これは、504と等しい場合、別のメールアドレスにメールを送信します。何らかの理由で、私はこれを取得します:/usr/lib/ruby/1.9.1/net/smtp.rb:960:in 'check_auth_response': 534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbv9z (Net::SMTPAuthenticationError) 私はquadraが認証データをチェックし、それらは有効です。たぶん、コード内の問題がある可能ことができます。RubyがGmailのsmtp経由でメールを送信する

require 'mail' 

options = { :address    => "smtp.gmail.com", 
      :port     => 587, 
      :user_name   => '<myusername>', 
      :password    => '<mypassword>', 
      :authentication  => 'plain', 
      :enable_starttls_auto => true } 

Mail.defaults do 
    delivery_method :smtp, options 
end 

Mail.deliver do 
     to '[email protected]' 
    from '[email protected]' 
    subject 'Test' 
    body 'Hurray!!! Test email!' 
end 

ああも、私は安全性の低いアプリが私のアカウントにアクセスしようとしたことをグーグルからの通知を得たので、私は安全性の低いアプリが自分のアカウントを使用できることを設定します。

+0

私はあなたがこの問題を解決し、良い答えを書く願っています!私もこれまでにこの問題を抱えていたし、いくつかの奇跡やGoogleの逸脱によって解決し、すぐにすべてを忘れてしまった。 – jphager2

答えて

14

あなたはこのリンクに2要素認証

Go]を使用していないしている場合:

https://www.google.com/settings/security/lesssecureapps

と選択:

"安全性の低いアプリのためのアクセス"

として:

https://support.google.com/accounts/answer/6010255?hl=en

この場合、通常のメールとパスワードを使用して接続します。あなたあるは、2要素認証

を使用している場合

あなたはあなたのアプリケーションのためのアプリケーション固有のパスワードを作成する必要があります。 「ダウン
  • スクロール「&セキュリティログイン」をクリックし
  • プロフィールアイコンに右上のクリックで
  • をGmailや「マイアカウント」を選択し

    1. ゴー次の手順に従います。 Sign &セキュリティページでは、「App Passwords」というセクションがあります。そのページをクリックしてください。
    2. [アプリケーションの選択]というドロップダウンが表示されます。メールを選択します。
    3. 「マイデバイス」のドロップダウンで「その他」を選択し、コマンドラインまたはアプリを呼びたいものを入力します。
    4. [Generate]をクリックします。パスワードが生成されます。パスワードことをコピーして、生成されたパスワードを使用してオプションのハッシュに使用していたパスワードに置き換えます

      オプション= {:アドレス=> "smtp.gmail.com" を、 :ポート=> 587、 :USER_NAME => ''、 :パスワード=> ''、 :=>認証 'が平野'、 :enable_starttls_auto =>真}

      それでなければなりません

    。私はちょうどこれを試み、それは私のために働いた。

    また、ユーザー名が完全なGmailのメールアドレスであることも確認してください。

    また、ここでは「公式ドキュメント」を見つけることができます:https://support.google.com/accounts/answer/185833?hl=en

  • +0

    まあ、私は幸運から外れているようです: "探している設定はあなたのアカウントでは利用できません。" –

    +0

    2FAを使用していないようです。私は、「あまりセキュアでない」アプリケーションの接続を許可する方法で自分の答えを更新しました。この場合、通常のパスワードを使用します。 – rainkinz

    +0

    すばらしい答え、ありがとう! –

    関連する問題