Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用亚马逊SES&;设计_Ruby On Rails_Ruby_Heroku_Devise_Amazon Ses - Fatal编程技术网

Ruby on rails 使用亚马逊SES&;设计

Ruby on rails 使用亚马逊SES&;设计,ruby-on-rails,ruby,heroku,devise,amazon-ses,Ruby On Rails,Ruby,Heroku,Devise,Amazon Ses,因此,我想设计利用亚马逊ses向用户发送“我忘记了密码”的电子邮件。我遵循了使用Gmail设置Desive的所有步骤,然后尝试将SES配置为生产中的邮件程序。rb我是ruby新手,我确信我在语法或配置方面做了一些不正确的事情 Production.rb config.action_mailer.delivery_method = :smtp, config.action_mailer.smtp_settings = { :address => "email-sm

因此,我想设计利用亚马逊ses向用户发送“我忘记了密码”的电子邮件。我遵循了使用Gmail设置Desive的所有步骤,然后尝试将SES配置为生产中的邮件程序。rb我是ruby新手,我确信我在语法或配置方面做了一些不正确的事情

Production.rb

    config.action_mailer.delivery_method = :smtp,
    config.action_mailer.smtp_settings = {
      :address => "email-smtp.us-west-2.amazonaws.com",
      :user_name =>  ENV['AWS_SMTP_USER'], # Your SMTP user here.
      :password => ENV['AWS_SMTP_PASSWORD'], # Your SMTP password here.
      :authentication => :login,
      :enable_starttls_auto => true
  }
我使用“$Heroku config”将AWS_SMTP_用户和AWS_SMTP_密码存储到配置中

设计

  config.mailer_sender = 'Admin@synapticecho.com'
我不认为我遗漏了什么,但我还没有发现有人试图使用Desive&SES作为邮件发送工具。我只是不确定我还遗漏了哪些内容,我也没有发现AWS文档对配置SES以使用Desive有多大帮助

如果github项目有帮助,我可以发布。

在我的例子中

我犯了以下错误

  • Net::SMTPFatalError(554邮件被拒绝:电子邮件地址未验证
但是,就像你一样,我不知道还有什么遗漏

试试下面的设置

config.action_mailer.default_url_options = { host: Rails.application.secrets.HOST }
config.after_initialize do
  config.action_mailer.perform_deliveries    = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    address:        Rails.application.secrets.ACTION_MAILER_ADDRESS,
    port:           Rails.application.secrets.ACTION_MAILER_PORT,
    domain:         Rails.application.secrets.ACTION_MAILER_DOMAIN,
    user_name:      Rails.application.secrets.ACTION_MAILER_USER_NAME,
    password:       Rails.application.secrets.ACTION_MAILER_PASSWORD,
    authentication: :login,
    ssl:            true,
    tls:            true,
    enable_starttls_auto: true
  }
end
行得通,我的环境。 这一点是
config.after\u initialize
。 但是,我不知道为什么需要它

  • 轨道4.1.4
  • 设计3.2.4
  • 美国焊接学会
  • 在AWS EC2中
  • 已验证电子邮件的域名为“gmail.com”(我会更改)

我通过在production.rb中添加以下行来解决问题


ActionMailer::Base.default:from=>“my.verified.email.address”

如果您在沙盒模式下运行,并且您试图发送到的电子邮件尚未验证,则会阻止您发送到该地址,并出现该特定错误。您基本上有两个选项:1)使用您自己的域发送和接收电子邮件(您可以验证整个域)2)手动将每个帐户添加到“已验证发件人”列表中,直到您获得生产模式的批准(仅发送/接收这些帐户)您是否将此代码放在我的config.action\u mailer代码位于production.rb中的位置?是的,我已验证了我的域和电子邮件。而且,我确保在生产模式下。因此,请尝试在production.rb中设置。(我试过验证邮件。但是,
Net::SMTPFatalError
发生了。所以,我在初始化后添加了
config.do
,就像上面的代码一样。然后它就工作了)对不起,我的英语。(^^;)我正在Heroku上托管我的应用程序,它不会从GitHub推送。我用你的production.rb代码替换了我的production.rb代码,只是为了看看会发生什么,它告诉我:
Running:rake资产:precompile rake中止!语法错误:/tmp/build_c10e4311-ee0a-41a4-a5ce-d15ef7fbda34/config/environments/production.rb:119:语法错误,输入意外结束,需要关键字_end
很抱歉,我发现了不一致。在
application.rb中尝试。在我的环境中。它正在application.rb中。我试过heroku。这是没有错误的。发现进程类型Procfile声明Ruby->console、rake、web、worker->压缩的类型->(无)默认类型。。。完成,40.0MB------>启动。。。完成,v7http://.herokuapp.com/ 部署到Heroku