【问题标题】:why i did'nt received all the mails from my rails5 application?为什么我没有收到来自我的 rails 5 应用程序的所有邮件?
【发布时间】:2020-01-21 18:29:31
【问题描述】:

我部署了一个带有联系表单的 rails5 网站。我使用 action-mailer 和 gmail 向我发送联系表(通过我的 gmail 帐户)。我在我的谷歌帐户上使用应用程序密码进行了两步验证。问题是大部分时间都很好,但有时我没有收到邮件。我认为这来自谷歌,因为如果它来自我的代码,为什么我大部分时间都会收到它们。 我希望有人有一个想法。 我还有第二个问题是,从我的操作邮件配置中调用凭据的这种语法好吗?

    address:              'smtp.gmail.com',
    port:                 587,
    domain:               'domain.com',
    user_name:            ['Rails.application.credentials.dig(:production, :GMAIL_USER_NAME)'],
    password:             ['Rails.application.credentials.dig(:production, :GMAIL_PASSWORD)'],
    authentication:       'plain',
    enable_starttls_auto: true  } 

在我的 credentials.yml.enc 中:

    GMAIL_USER_NAME: user@gmail.com
    GMAIL_PASWORD: applicationgmailpassword

【问题讨论】:

    标签: ruby-on-rails gmail actionmailer contact-form


    【解决方案1】:

    因为您收到了一些电子邮件,所以我认为您是正确的,问题在于 Google,而不是您的应用程序。

    它们是否出现在您的垃圾邮件文件夹中?

    您可以尝试切换到 Mailgun 之类的工具。 试试这个教程:https://www.leemunroe.com/send-automated-email-ruby-rails-mailgun/

    关于你的第二个问题,我认为你需要重新格式化。

    如何构建您的 credentials.yml.enc 文件:

    # no need to specify between environments
    # no need to capitalize
    gmail_user_name: someemail@gmail.com
    gmail_password: thisIsNotMyRealPassword
    

    然后调用这些变量:

    Rails.application.credentials.gmail_user_name
    Rails.application.credentials.gmail_password
    

    因此,在您的 ActionMailer 配置文件中,您应该这样做:

      ...
      user_name: Rails.application.credentials.gmail_user_name,
      password: Rails.application.credentials.gmail_password,
      ...
    

    【讨论】:

      【解决方案2】:

      谢谢@Chiperific,凭据配置运行良好。 对于另一个问题,我可能会尝试 Mailgun。经过大量测试后,我很确定当 url 是 mydomain.com 而不是 www.mydomain.com 时,gmail 会阻止我的应用程序的连接! 如果有人有可以帮助我的想法。 谢谢。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-08
        • 2014-12-18
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 1970-01-01
        • 2019-11-05
        • 1970-01-01
        相关资源
        最近更新 更多