6

現在、Daniel Kehoe のLearn Ruby on Railsチュートリアルを行っています。演習の 1 つは、Google の Gmail アカウントを使用して、連絡先ページから連絡先フォームを送信することです。

ただし、連絡先フォームを送信すると、メールボックスにメールが届かず、次のエラーが表示されます。

「SMTP-AUTH が要求されましたが、ユーザー名がありません」

config/application.yml ファイルで、Gmail のユーザー名とパスワードを設定しました。

何が問題なのか誰にも分かりますか?

ご協力いただきありがとうございます、

アンソニー

4

2 に答える 2

6

パラメータ名が正しいことを再確認してください。私にとっては問題usernameuser_name解決しました。
エラーを確認したい場合は、 の値を に変更config.action_mailer.raise_delivery_errorsしますtrue。Rails 4 を使用していますが、適切に動作するように設定を変更する必要はありません。
ありがとう@Toontjeと@Daniel Kehoe

于 2014-05-03T06:36:35.287 に答える
6

Rails 4.0 の場合 (Rails 4.1 は secrets.yml ファイルを使用して認証情報を設定します):

ファイルconfig/environments/development.rbを確認すると、次のようになります。

  config.action_mailer.smtp_settings = {
    address: "smtp.gmail.com",
    port: 587,
    domain: ENV["DOMAIN_NAME"],
    authentication: "plain",
    enable_starttls_auto: true,
    user_name: ENV["GMAIL_USERNAME"],
    password: ENV["GMAIL_PASSWORD"]
  }
  # ActionMailer Config
  config.action_mailer.default_url_options = { :host => 'localhost:3000' }
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.raise_delivery_errors = true
  # Send email in development mode.
  config.action_mailer.perform_deliveries = true

ENV["GMAIL_USERNAME"] を Gmail のユーザー名に置き換えてみてください。

Unix シェルで ENV["GMAIL_USERNAME"] を設定できます。またはconfig/application.ymlファイルに設定します。ユーザー名に英字以外の文字が含まれている場合は、ファイルconfig/application.ymlで引用符で囲む必要がある場合があります。

于 2014-02-26T18:41:31.137 に答える