【问题标题】:G-suite email settings not worked while sending email in rails在 Rails 中发送电子邮件时,G-suite 电子邮件设置不起作用
【发布时间】:2018-05-30 17:49:59
【问题描述】:

我使用 G-suite 电子邮件设置从 Rails 应用程序发送电子邮件。这是我的客户 G-suite 电子邮件。通常我使用我的 gmail 设置并且它可以工作,但 G-suite 电子邮件设置不起作用。下面的代码:

config.action_mailer.smtp_settings = {
   :address              => "smtp-relay.gmail.com",
   :port                 => 587,
   :user_name            => "info@XXXX.com",
   :password             => "XXXXXX",
   :authentication       => "plain",
   :domain               => "gmail.com",
   :enable_starttls_auto => true
  }

我也使用了address: "smtp.gmail.com",但没用。

我收到了error: SMTP: authentication failed,但有时什么都没有,但没有收到电子邮件。

任何人都有想法或相同经验的解决方案。

谢谢

【问题讨论】:

    标签: ruby-on-rails email


    【解决方案1】:

    gmail 中有这样的配置可能是问题的原因。我不确定它会导致error: SMTP: authentication failed

    这是guide 允许不安全的应用程序

    更改您的设置以允许安全性较低的应用进入您的帐户。

    我们不建议使用此选项,因为它可以使他人更容易侵入您的帐户。如果您仍然想允许访问,请按照以下步骤操作:

    1. 转到我帐户的“Less secure apps”部分。
    2. 开启允许不太安全的应用。 (注意:如果您的管理员锁定了安全性较低的应用帐户访问权限,则此设置会被隐藏。)

    我也找到了类似的帖子来解决这个问题,例如在这个so question中解决了一个类似的问题

    【讨论】:

    • 感谢您的回复,但它已经完成但仍然面临问题。
    • @harsh4u 问题是您使用ENV 变量作为密码,您确定它有效吗?
    • 我输入了静态用户名和密码。
    • Try adding openssl_verify_mode => 'none' to your action mailer settings: 您是否在 stackoverflow 上进行了搜索,您是否尝试过stackoverflow.com/questions/25735206/… 中的解决方案,您的config.action_mailer.default_url_options 在您的production.rb 中看起来如何
    【解决方案2】:

    这些设置对我有用:

    config.action_mailer.default_url_options = { :host => 'localhost:3000' }
    config.action_mailer.perform_caching = false
    
    config.action_mailer.delivery_method = :smtp
    # SMTP settings for gmail
    config.action_mailer.smtp_settings = {
     :address              => "smtp.gmail.com", 
     :port                 => 587,
     :user_name            => 'info@example.com', # Change this to the email you're sending from
     :password             => 'your_password_goes_here', # Change this to your password
     :authentication       => "plain",
    :enable_starttls_auto => true
    }
    

    一个额外的小费。默认情况下:config.action_mailer.raise_delivery_errors = false 设置为 true,这样您就可以在浏览器/控制台中看到任何错误消息

    注意:为了让邮件程序能够使用任何 google 电子邮件帐户,您必须启用“允许安全性较低的应用程序”。

    为此,首先转到 G-Suite admin 控制台并打开安全 -> 高级安全设置并选中单选按钮:“允许用户管理他们对安全性较低的应用程序的访问”

    现在登录您的 G-Suite 用户 帐户,转到我的帐户 -> 登录和安全。在底部,您会看到允许不太安全的应用程序。打开它。

    你可以走了!

    【讨论】:

    • 这在 2019 年有效。我不知道 gsuite 文档在提出问题时的状态,但它们现在将 smtp.gmail.com 反映为地址(就像这个答案一样)vs smtp-relay.gmail.com
    猜你喜欢
    • 1970-01-01
    • 2018-03-15
    • 2021-02-25
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    相关资源
    最近更新 更多