当前位置: 首页 > 知识库问答 >
问题:

Gmail的Action Mailer配置

高山
2023-03-14

我正在尝试将使用Gmail SMTP的电子邮件传递添加到我的应用程序中。我以前已经做过“不太安全的应用程序”,但我不想在此项目中使用此选项。

我曾试图查看谷歌的文档或一些gem以使其发挥作用,但无济于事。每个人都只是发送一些代码(如下所示,通常与我的代码相同)或告诉我尝试“不太安全的应用程序”。

我目前对production.rb的操作邮件配置是:

    config.action_mailer.perform_caching = false
    config.action_mailer.delivery_method = :smtp
    config.action_mailer.default_url_options = { :host => ENV['DOMAIN_NAME'] }
    config.action_mailer.asset_host = ENV['DOMAIN_NAME']

    config.action_mailer.smtp_settings = {
      :address              => 'smtp.gmail.com',
      :port                 => 587,
      :authentication       => :plain,
      :user_name            => ENV['USERNAME'],
      :password             => ENV['PASSWORD'],
      :enable_starttls_auto => true
    }

有人说我需要": domain=

此外,我意识到在官方的Rails留档中说:

注意:自2014年7月15日起,Google增加了其安全措施,现在阻止了它认为不太安全的应用程序的尝试。您可以在此处更改您的gmail设置以允许尝试。如果您的Gmail帐户启用了双因素身份验证,那么您将需要设置一个应用程序密码并使用它来代替您的常规密码。或者,您可以使用另一个ESP发送电子邮件,将上面的“smtp.gmail.com”替换为您的提供商的地址。

(来自http://guides.rubyonrails.org/action_mailer_basics.html#action-gmail邮箱配置)

但是我不确定这个解决方案是否仍然需要启用“不太安全的应用程序”选项,这不是我需要的。有人在不使用“不太安全的应用程序”的情况下解决了这个问题吗?

提前感谢!

共有2个答案

贺浩漫
2023-03-14
config.read_encrypted_secrets = true
config.action_mailer.default_url_options = { :host => 
"domain.com" }
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :smtp

config.action_mailer.smtp_settings = {
 :address => "smtp.gmail.com",
 :port => 587,
 :user_name => "username",
 :password => "password",
 :enable_starttls_auto => true
}

尝试此配置。

蓝泰平
2023-03-14

好吧,过了一段时间我终于做到了。

我要做的是:

1)对我的gmail帐户进行两步验证,您可以在此处启用:https://myaccount.google.com/security

2) 在此处创建特定于应用程序的密码:https://support.google.com/accounts/answer/185833

它是一个格式为16个小写字母的字符串。它们以4个一组分开显示,但都在同一个字符串中。您所要做的就是在块内的密码字段中添加此应用程序密码。

    ...
    :user_name => 'my@gmail.com',
    :password  => 'abcdefghijklmnop',
    ...

所有其他设置均未更改。

 类似资料:
  • 问题内容: 当我尝试使用以下设置通过Flask-Mail将电子邮件发送到Gmail的SMTP服务器时,我得到了。如何修改我的配置以通过Gmail发送电子邮件? 问题答案: 服务器是“ smtp.gmail.com”。 端口必须与使用的安全性类型匹配。 如果将STARTTLS与一起使用,请使用。 如果直接将SSL / TLS与一起使用,则使用。 同时启用STARTTLS或SSL / TLS。 根据你

  • 我无法将SMTP服务器配置为发送工作流通知。 我尝试了SSL和TLS两种协议。

  • 问题内容: 我正在尝试通过设置gmail smtp从Django发送电子邮件。但是每次它返回我0状态。我在stackoverflow中搜索了不同的相关答案,并且我以相同的方式设置了smtp服务器,但仍然没有发送任何电子邮件。.以下是我的设置文件 下面是我的代码 但是,每次打印状态为0时,表示都不会发送电子邮件。关于环境,我在具有ubuntu作为操作系统和Apache作为服务器的Amazon EC2

  • 问题内容: 我尝试将jenkins配置为使用gmail作为POP提供程序发送电子邮件通知,但无法成功 测试失败:拒绝连接 javax.mail.MessagingException:无法连接到SMTP主机:pop.gmail.com,端口:995;嵌套的异常是:java.net.ConnectException:连接被拒绝:connect 问题答案: Google SMTP服务器的主机名是smtp

  • 所以我尝试使用swiftmailer通过gmail帐户发送电子邮件。我知道有一些问题可以解决这个问题,但没有一个建议的解决方案对我有帮助。我的问题是,当我运行代码时,我得到“PHP致命错误:未捕获异常‘Swift\u TransportException’,消息‘预期响应代码250,但得到代码‘535’,消息‘535-5.7.8用户名和密码不被接受’。“我知道我的密码和用户名是正确的,谷歌两步验证

  • 问题内容: 我正在尝试为Android编写小型gmail客户端作为培训。我从https://developers.google.com/gmail/api/quickstart/android上获取了gmail api指南示例,对其进行了一些修改,以获取带有标题和正文的消息。我将范围设置为并编辑了主要请求功能,如下所示: 但是我总是 我尝试了不同的范围配置,但似乎服务范围始终设置为 问题答案: 这