gpt4 book ai didi

ruby-on-rails - 如何使用 Mandrill 发送和接收邮件?

转载 作者:行者123 更新时间:2023-12-05 01:05:37 26 4
gpt4 key购买 nike

我正在使用 Ruby on Rails,你能教我如何使用 Mandrill 发送和接收邮件。

我的问题是当用户输入文本并按提交时,我希望将消息发送到我的邮件中。
我已经阅读了文档,但我不明白。

这是我的 development.rb,和 production.rb 一样

ActionMailer::Base.smtp_settings = {
:port => '587',
:address => 'smtp.mandrillapp.com',
:user_name => 'myemail@gmail.com',
:password => 's82SlRM5dPiKL8vjrJfj4w',
:domain => 'heroku.com',
:authentication => :plain
}
ActionMailer::Base.delivery_method = :smtp

user_mailer.rb:
class UserMailer < ActionMailer::Base
default from: "from@example.com"
def welcome
mail(to: "morumotto26@gmail.com", subject: "Welcome", body: "Have a nice day")
end
end

并在 Controller 中:
def index
UserMailer.welcome.deliver
end

我的日志文件如下所示:
Started GET "/users/" for 127.0.0.1 at 2014-01-21 16:14:10 +0700
Processing by UsersController#index as HTML

Sent mail to morumotto26@gmail.com (2008.0ms)
Date: Tue, 21 Jan 2014 16:14:10 +0700

From: myemail@gmail.com

To: morumotto26@gmail.com

Message-ID: <52de3a62c89b2_5e8c9ea1881631@tnkjapan10.mail>

Subject: Welcome

Mime-Version: 1.0

Content-Type: text/plain;

charset=UTF-8

Content-Transfer-Encoding: 7bit



Have a nice day
Rendered text template (0.0ms)
Completed 200 OK in 2018ms (Views: 1.0ms | ActiveRecord: 0.0ms)

最佳答案

首先,您需要在 mandrill.com 上创建帐户。

登录后,选择集成类型:SMTP 或 API。在大多数情况下,SMTP 将适合您。

单击 SMTP,并创建您的 API key 。

然后在你的 development.rb 或 production.rb 文件中
添加这些行:

config.action_mailer.smtp_settings = {
:port => '587',
:address => 'smtp.mandrillapp.com',
:user_name => ENV['MANDRILL_USERNAME'],
:password => ENV['MANDRILL_APIKEY'],
:domain => 'domain.com',
:authentication => :plain
}

这基本上就是全部。现在您可以使用 Mandrill 发送电子邮件。

编辑

还尝试将这些行添加到您的环境文件中以执行交付并提出交付错误(如果有)。还要添加您的 default_url_options - 在开发中 localhost:3000,在生产中 heroku.com
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default_url_options = { host: "localhost:3000" }

测试前重启你的应用

编辑 2

如果您希望 ActionMailer 在点击提交按钮时发送电子邮件,那么您需要移动 UserMailer.welcome.deliver创建相应 Controller 的 Action 。
def create
if @object.save
UserMailer.welcome.deliver
else
render "new"
end
end

关于ruby-on-rails - 如何使用 Mandrill 发送和接收邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21229139/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com