SMTP-AUTHは要求されましたが、ユーザー名が見つかりませんでした
-
21-12-2019 - |
質問
現在、Daniel Kehoeの Ruby on Rails チュートリアルを学ぶ。演習の1つは、GoogleのGmailアカウントを使用して連絡先ページから連絡先フォームを送信することです。
しかし、私のメールボックスに電子メールを送るのではなく、連絡先フォームを送信すると、このエラーが発生しています。
"SMTP-AUTHが要求されましたが、ユーザー名が欠落しています"
my config / application.ymlファイルでは、Gmailのユーザー名とパスワードを設定します。
誰もが問題があるかもしれないものを考えていますか?
あなたの助けをありがとう、
アンソニー
解決
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
.
gmailのユーザー名にenv ["gmail_username"]を置き換えてください。
UNIXシェルの["gmail_username"]を設定できます。またはファイル config / application.yml に設定します。ユーザ名にアルファ文字以外の文字が含まれている場合は、ファイル config / application.yml で引用符で囲む必要があるかもしれません。
他のヒント
パラメータ名を2倍にするだけで正しいことを確認してください。username
をuser_name
に変更すると問題が解決されました。
エラーを表示したい場合は、config.action_mailer.raise_delivery_errors
の値をtrue
に変更してください。
私はRails 4を持っていて、設定の変更を正しく機能させる必要はありません。
ありがとう@Toontjeと@Daniel Kehoe