在Heroku上使用Rails 3实现Gmail

11

我正在尝试在Heroku上发送电子邮件。目前,我可以通过此处的“教程”从Heroku发送电子邮件,所以这很好。

我的问题是,虽然我已经在Heroku上解决了发送邮件的问题,但我无法在开发环境中解决这个问题。我曾经在environment.rb或development.rb中设置后,就可以在开发环境中成功发送电子邮件,但是在教程中的操作之后,删除了env/dev.rb中的设置后,它就无法工作了。

在浏览器中,我收到如下错误消息:530-5.5.1 需要认证。了解详情请访问(它在“访问”处截断)。

在服务器控制台中,我收到如下错误消息:Net::SMTPAuthenticationError (530-5.5.1 需要认证。了解详情请访问
):

我已经设置了heroku config:add GMAIL_SMTP_USER=username@gmail.comheroku config:add GMAIL_SMTP_PASSWORD=yourpassword(使用我的信息 ;)),但这没有帮助。

有什么想法我做错了吗?

我能否以某种方式跳过Heroku脚本,在开发中以旧方式进行?

谢谢 Carl


我在我的Linode实例中使用Rails action mailer和Gmail也遇到了同样的问题。两天前它还能正常工作,但今天突然出现了错误。 - millisami
你找到这个问题的解决方案了吗?我也遇到了同样的问题... - oFca
5个回答

6

按照上面用户提供的SMTP设置进行操作。


除此之外,如果你没有验证过应用程序对你账户的登录,则Gmail会阻止未经确认的登录。


因此,请前往Gmail客户端并进行登录。


如果这样还不行,请前往解锁验证码


4
我遇到了这个错误:Net::SMTPAuthenticationError (534-5.7.14 <https://accounts.google.com/ContinueSignIn?plt=...). 访问您提供的链接解决了问题。谢谢! - Rich Aston

5
我个人遇到了使用Gmail发送邮件时出现错误的情况,需要解锁验证码才能发送。有时候Gmail对安全性要求比较严格,而且文档说明并不是很清晰。
完整的消息应该是:
530-5.5.1 Authentication Required. Learn more at https://support.google.com/mail/bin/answer.py?hl=en&answer=14257

请查看此链接并按照那里的指示操作。您可能需要登录Gmail网页应用程序或(像我一样),解决解锁验证码。或者可能是您的应用程序或环境中的某些问题,但遵循Google的指示值得一试。

2
请在 config/environments/development.rb 文件中添加以下代码。
config.action_mailer.raise_delivery_errors = false
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true

同时确保您已经在 config/initializers/smtp_gmail.rb 中添加了以下内容

ActionMailer::Base.smtp_settings = {
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :user_name            => "abc@xyz.com",
  :password             => "password",
  :authentication       => "plain",
  :enable_starttls_auto => true
}

1

我在Heroku应用程序上通过Gmail发送电子邮件。这是我的配置信息,如果有帮助的话。我没有使用任何第三方插件,只使用了Rails 3。

config/initializers/setup_mail.rb中。

ActionMailer::Base.smtp_settings = {
  :address  => "smtp.gmail.com",
  :port  => 587,
  :user_name  => "foo@bar.com",
  :password  => "foobar",
  :authentication  => :plain,
  :enable_starttls_auto => true
}

config/environments/production.rb文件中,在config块的end语句之后,我添加了以下内容:ActionMailer::Base.smtp_settings[:enable_starttls_auto] = false

1

你在本地机器上导出了那些环境变量吗?你说你正在将GMAIL_SMTP...添加到heroko配置中,但是你是否:

$ export GMAIL_SMTP_USER=username@gmail.com $ export GMAIL_SMTP_PASSWORD=yourpassword

我遇到了你的问题,因为我也在开发中使用电子邮件,并想知道是否仍然需要关于如何在heroku上使smtp和gmail工作的2009年帖子。显然是这样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接