首先在我的项目中,我可以收到由devise gem和mandrill服务发送的注册确认电子邮件。所以我假设我的电子邮件配置设置是正确的。但是,我自己的send_mail
函数无法成功发送电子邮件。
我的邮件设置:
config.action_mailer.smtp_settings = {
address: "smtp.mandrillapp.com",
port: 587,
domain: Rails.application.secrets.domain_name,
authentication: "plain",
enable_starttls_auto: true,
user_name: Rails.application.secrets.email_provider_username,
password: Rails.application.secrets.email_provider_password
}
# ActionMailer Config
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_controller.asset_host = 'localhost:3000'
config.action_mailer.asset_host = 'http://localhost:3000'
config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true
# Send email in development mode?
config.action_mailer.perform_deliveries = true
梅勒等级:
class BidMailer < ActionMailer::Base
default from: "service@xxx.com"
def send_mail(bid)
@bid = bid
mail(to: 'xxxxx@gmail.com', subject: 'Bid Accepted', reply_to: 'service@xxx.com')
end
end
在控制器中,我只需拨打BidMailer.send_mail(bid).deliver
。我还在电子邮件正文的视图中有html文件。
我可以在服务器控制台日志中看到这一点:
Sent mail to xxx@gmail.com (24.0ms)
Date: Wed, 11 Mar 2015 22:39:45 +1100
From: service@xxx.com
Reply-To: service@xxx.com
To: xxx@gmail.com
Message-ID: <550029815f07_782a3fec29fa23c8413c@Shanes-MacBook-Pro.local.mail>
Subject: Bid Accepted
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
当devise
发出注册确认电子邮件时,我也可以看到类似的电子邮件日志。
但我完全不知道为什么我的send_mail
功能无法收到任何电子邮件?
任何人都可以提供帮助吗?谢谢你!