Ruby on rails 为什么我不能用pow发送电子邮件?

Ruby on rails 为什么我不能用pow发送电子邮件?,ruby-on-rails,ruby,email,rack-pow,Ruby On Rails,Ruby,Email,Rack Pow,我有一个rails项目,它使用ActionMailer发送电子邮件。这似乎与localhost:3000上的“rails服务器”配合得很好,但当我使用pow时,会从smtp服务器收到身份验证错误消息。我猜这与环境变量有关。这是配置代码 config.action_mailer.smtp_settings = { address: "smtp.gmail.com", port: 587, domain: "railscasts.com", authentication: "plain",

我有一个rails项目,它使用ActionMailer发送电子邮件。这似乎与localhost:3000上的“rails服务器”配合得很好,但当我使用pow时,会从smtp服务器收到身份验证错误消息。我猜这与环境变量有关。这是配置代码

 config.action_mailer.smtp_settings = {
 address: "smtp.gmail.com",
 port: 587,
 domain: "railscasts.com",
 authentication: "plain",
 enable_starttls_auto: true,
 user_name: ENV["GMAIL_USERNAME"],
 password: ENV["GMAIL_PASSWORD"]
}
我在山狮队


谢谢

正如巴拉蒂娜所建议的,它可能与您配置文件中的域有关!根据Ruby on Rails提供的指南:

与Gmail兼容的正确配置如下所示:

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address              => "smtp.gmail.com",
:port                 => 587,
:domain               => 'baci.lindsaar.net',
:user_name            => '<username>',
:password             => '<password>',
:authentication       => 'plain',
:enable_starttls_auto => true  }
config.action\u mailer.delivery\u method=:smtp
config.action\u mailer.smtp\u设置={
:address=>“smtp.gmail.com”,
:端口=>587,
:domain=>“baci.lindsaar.net”,
:user_name=>“”,
:密码=>'',
:身份验证=>“普通”,
:enable_starttls_auto=>true}
您的
设置为
railscasts.com
。除非那是你的网站,我猜这个域名是不正确的。事实上,也是这样

此StackOverflow详细说明了插件曾经是必需的,但如果您使用的是Rails 3.2或更高版本,则不再需要插件。文章顶部答案下方的注释详细说明了
是可选的

更新:根据您描述的错误,您似乎遇到了身份验证错误!这可能是因为您的登录凭据


此用户在使用Heroku的上下文中询问,但错误相同。如果你的应用程序可以在Rails服务器上正常工作,但不能在Pow上正常工作,那就是服务器端设置问题。解决方案包括需要正确设置
ENV
(环境)变量以与服务器一起工作

正如布拉马提娜所建议的,它可能与配置文件中的域有关!根据Ruby on Rails提供的指南:

与Gmail兼容的正确配置如下所示:

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address              => "smtp.gmail.com",
:port                 => 587,
:domain               => 'baci.lindsaar.net',
:user_name            => '<username>',
:password             => '<password>',
:authentication       => 'plain',
:enable_starttls_auto => true  }
config.action\u mailer.delivery\u method=:smtp
config.action\u mailer.smtp\u设置={
:address=>“smtp.gmail.com”,
:端口=>587,
:domain=>“baci.lindsaar.net”,
:user_name=>“”,
:密码=>'',
:身份验证=>“普通”,
:enable_starttls_auto=>true}
您的
设置为
railscasts.com
。除非那是你的网站,我猜这个域名是不正确的。事实上,也是这样

此StackOverflow详细说明了插件曾经是必需的,但如果您使用的是Rails 3.2或更高版本,则不再需要插件。文章顶部答案下方的注释详细说明了
是可选的

更新:根据您描述的错误,您似乎遇到了身份验证错误!这可能是因为您的登录凭据


此用户在使用Heroku的上下文中询问,但错误相同。如果你的应用程序可以在Rails服务器上正常工作,但不能在Pow上正常工作,那就是服务器端设置问题。解决方案包括需要正确设置
ENV
(环境)变量以与服务器一起工作

我有一个不同的建议:

在dev中,只需使用。无论如何,在这种情况下,它比实际发送电子邮件更有用


在生产中,使用而不是GMail。SendGrid非常棒,而且非常容易设置。

我有一个不同的建议:

在dev中,只需使用。无论如何,在这种情况下,它比实际发送电子邮件更有用


在生产中,使用而不是GMail。SendGrid非常棒,而且非常容易设置。

Pow通过检查应用程序根目录中的两个文件来加载环境变量

  • 鲍威尔先生
  • 鲍文先生
  • 我使用touch命令创建了.powrc文件,然后添加了环境变量

    export GMAIL_USERNAME=username
    export GMAIL_PASSWORD="my password"
    
    然后,我通过以下方式重新启动应用程序的工作程序:

    touch tmp/restart.txt
    

    电子邮件现在可以工作了

    Pow通过检查应用程序根目录中的两个文件来加载环境变量

  • 鲍威尔先生
  • 鲍文先生
  • 我使用touch命令创建了.powrc文件,然后添加了环境变量

    export GMAIL_USERNAME=username
    export GMAIL_PASSWORD="my password"
    
    然后,我通过以下方式重新启动应用程序的工作程序:

    touch tmp/restart.txt
    

    电子邮件现在可以工作了

    域:“railscasts.com”可能与itI有关,我会尝试删除它,但请再次注意,rails服务器工作正常,只有pow没有。域:“railscasts.com”可能与itI有关,我会尝试删除它,但请再次注意,rails服务器工作正常,只有pow没有。我试着摆脱这个域名,但仍然不起作用。具体的错误消息是SubscribersController中的Net::SMTPAuthenticationError#send_email 530-5.5.1需要身份验证。了解更多信息这可能会回答您的问题!如果您遇到的是身份验证错误,可能是因为您的登录凭据没有正确注册:此用户在使用Heroku的上下文中询问,但错误是相同的。这可能需要正确设置
    ENV
    (环境)变量。首先,尝试设置用户名和密码,但不使用ENV前缀。我尝试删除该域,但仍然不起作用。具体的错误消息是SubscribersController中的Net::SMTPAuthenticationError#send_email 530-5.5.1需要身份验证。了解更多信息这可能会回答您的问题!如果您遇到的是身份验证错误,可能是因为您的登录凭据没有正确注册:此用户在使用Heroku的上下文中询问,但错误是相同的。这可能需要正确设置
    ENV
    (环境)变量。首先,尝试设置不带ENV前缀的用户名和密码。然而,SendGrid对于我的需要来说太重了。我的基本上只是一个爱好项目。拆信器看起来很酷。然而,SendGrid对于我的需要来说太重了。我的基本上只是一个爱好项目。对我和其他人来说