Ruby on rails 使用亚马逊SES&;设计
因此,我想设计利用亚马逊ses向用户发送“我忘记了密码”的电子邮件。我遵循了使用Gmail设置Desive的所有步骤,然后尝试将SES配置为生产中的邮件程序。rb我是ruby新手,我确信我在语法或配置方面做了一些不正确的事情 Production.rbRuby 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
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”(我会更改)
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