我已经阅读了一些关于如何使用 Rails 发送电子邮件的问题和http://guides.rubyonrails.org/action_mailer_basics.html,但似乎无法让它在我当前应用程序的上下文中工作。
我有一个现有emailer.rb
的方法,除了它们接受的参数名称不同之外,它们是相同的,所以我复制了它们的格式:
def quotation_notification(q)
@recipients = q.recipient_email
@from = q.partner_name + "<#{q.partner_email}>"
@subject = "New Quotation from " + q.partner_name
@body[:q] = q
end
emailers
然后我在named中创建了一个新的视图文件,quotation_notification.rhtml
它暂时只包含文本。
然后我从另一个控制器内部调用该函数并暂时发送硬编码参数:
q = QuotationEmail.new(:recipient_email => 'martin@domain.co.uk', :partner_name => 'Martin Carlin', :partner_email => 'martin@domain.co.uk')
# send email
Emailer.deliver_quotation_notification(q)
最后,我为QuotationEmail
class QuotationEmail
def initialize(recipient_email, partner_name, partner_email)
@recipient_email = recipient_email
@partner_name = partner_name
@partner_name = partner_email
end
end
我得到的错误是ArgumentError (wrong number of arguments (1 for 3))
最终,我将发送更多参数,并希望附上一个 pdf,但只是想弄清楚为什么这首先不起作用。