我定义了一个自定义传递方法,并将其加载到初始化器中:
ActionMailer::Base.add_delivery_method :custom,CustomDelivery
然后我将config.action_mailer.delivery_method =:custom添加到development.rb和production.rb.
但是当我想发送电子邮件时
UserMailer.authorize(user).deliver
它失败了与SMTP相关的东西(ArgumentError:发送邮件所需的发件人(Return-Path,Sender或From))
来自/Users/me/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/mail-2.4.4/lib/mail/network/delivery_methods/smtp.rb:99:in交付!’) – 我不想用.
为什么不采用自定义交付方式?
更新:
当我从控制台尝试时,我注意到以下内容:
irb(main):019:0> UserMailer.delivery_method => :custom irb(main):020:0> UserMailer.authorize(user).delivery_method => #<Mail::SMTP:0x00000100bdc738 @settings={:address=>"localhost",:port=>25,:domain=>"localhost.localdomain",:user_name=>nil,:password=>nil,:authentication=>nil,:enable_starttls_auto=>true,:openssl_verify_mode=>nil,:ssl=>nil,:tls=>nil}>
(顺便说一句,我在我的项目中搜索了“SMTP”,并且有0次出现)