使用Devise gem和Mailgun Api发送电子邮件

时间:2016-05-25 10:27:07

标签: ruby-on-rails devise mailgun

我想通过Mailgun SMTP或API发送自动电子邮件。问题是在教程中我发现他们解释了如何手动e.i创建邮件程序等等。例如:



def send_simple_message
  RestClient.post "https://api:YOUR_API_KEY"\
  "@api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages",
  :from => "Excited User <mailgun@YOUR_DOMAIN_NAME>",
  :to => "bar@example.com, YOU@YOUR_DOMAIN_NAME",
  :subject => "Hello",
  :text => "Testing some Mailgun awesomness!"
end
&#13;
&#13;
&#13;

这是来自官方的Mailgun文档。

但我正在使用已实施电子邮件发送的Devise gem。

例如我想发送密码重置电子邮件。当我点击忘记密码并从日志中提交我的电子邮件时,我看到我的电子邮件已尝试发送,但当然没有发送,我需要设置电子邮件服务器。

所以问题是这个用于发送恢复邮件的代码是用设备编写的,如何覆盖它?我希望它能够使用它,所以它将使用Mailgun API。

我已经使用

生成了registrations_controller.rb
  

rails generate devise:controllers registrations

命令。所以我想我在这里压倒一切? 有什么建议吗?

1 个答案:

答案 0 :(得分:2)

你读过this教程吗?您需要在 config / environments / development.rb

中进行设置

类似的东西:

config.action_mailer.delivery_method = :smtp

config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: ENV['GMAIL_DOMAIN'],
authentication: 'plain',
user_name: ENV['GMAIL_USERNAME'],
password: ENV['GMAIL_PASSWORD']
}

此外,您可以尝试使用mail gun gem。看起来很容易设置它

config.action_mailer.delivery_method = :mailgun
config.action_mailer.mailgun_settings = {
        api_key: '<mailgun api key>',
        domain: '<mailgun domain>'
}

希望它对你有所帮助。