【问题标题】:SMTP-AUTH requested but missing user name已请求 SMTP-AUTH 但缺少用户名
【发布时间】:2014-03-28 22:02:22
【问题描述】:

目前我正在学习 Daniel Kehoe 的 Learn Ruby on Rails 教程。其中一个练习是使用 Google 的 Gmail 帐户从“联系人”页面发送联系表单。

但是,当我发送联系表单时,我的邮箱中没有收到电子邮件,而是收到以下错误:

“已请求 SMTP-AUTH 但缺少用户名”

在我的 config/application.yml 文件中,我设置了我的 Gmail 用户名和密码。

有人知道可能是什么问题吗?

感谢您的帮助,

安东尼

【问题讨论】:

    标签: smtp-auth learn-ruby-on-rails


    【解决方案1】:

    对于 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 shell 中设置 ENV["GMAIL_USERNAME"]。或者将其设置在文件 config/application.yml 中。如果用户名包含任何非字母字符,您可能需要在文件 config/application.yml 中用引号将其括起来。

    【讨论】:

    • 嗨丹尼尔,谢谢。问题已解决,我输入的是“用户名”而不是“用户名”
    • 对我来说,将username 更改为user_name 解决了这个问题。我会将@Daniel Kehoe 的答案改进为新的答案帖子。
    【解决方案2】:

    只需仔细检查参数名称是否正确。对我来说,将 username 更改为 user_name 解决了这个问题。
    如果您想查看错误,请将config.action_mailer.raise_delivery_errors 的值更改为true。 我有 Rails 4,它不需要对设置进行任何更改即可正常工作。
    谢谢@Toontje 和@Daniel Kehoe

    【讨论】:

      猜你喜欢
      • 2012-08-02
      • 1970-01-01
      • 2015-05-21
      • 1970-01-01
      • 1970-01-01
      • 2012-08-26
      • 1970-01-01
      • 2019-07-06
      • 2019-05-02
      相关资源
      最近更新 更多