1
我貨架我的大腦試圖找出到底是怎麼回事......爲什麼ActionMailer會失敗? SMTP解決的是需要
我打電話BidMailer.confirm(Bid.last.id).deliver
在軌控制檯,我得到了以下錯誤:
ArgumentError:發送郵件需要SMTP To地址。設置消息smtp_envelope_to,to,cc或bcc地址。
我的代碼:
的environment.rb
ActionMailer::Base.smtp_settings = {
user_name: ENV['SENDGRID_USERNAME'],
password: ENV['SENDGRID_PASSWORD'],
domain: ENV['SENDGRID_DOMAIN'],
address: "smtp.sendgrid.net",
port: 587,
authentication: :plain,
enable_starttls_auto: true
}
環境/ development.rb
config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
郵寄/ bid_mailer.rb
class BidMailer < ApplicationMailer
def confirm(bid_id)
@bid = present Bid.find(bid_id)
mail(
to: @bid.user.email,
subject: "Your request for #{@bid.event_name}"
)
end
end
如果我打印出@bid.user.email
,我的電子郵件顯示正常。
的從'ApplicationMailer' –
定義此外,我已經指定了'@ bid.user.email'已被證實是有效的電子郵件地址 –
作爲第一個調試我會硬編碼像'ENV所有值['SENDGRID_USERNAME ']'和'@ bid.user.email',因爲您的環境可能無法訪問所有變量 – Shannon