我正在尝试发送带有附件的电子邮件。收到电子邮件,但邮件正文出现三遍。
这是我的代码:
class NotificationMailer < ApplicationMailer
def bill_assignments(user, bill)
@receiver = user
@bill = bill
path = Rails.root.join('tmp', "#{@bill.reference}.pdf")
attachments["#{@bill.reference}.pdf"] = File.read(path)
mail(to: user.email, bcc: 'contact@domain.com', subject: "Bill")
# Elimina el archivo si existe
File.delete(path) if File.exist?(path)
end
end
我还重写了mail方法,以确保已启用接收器:
class ApplicationMailer < ActionMailer::Base
attr_reader :receiver
def mail(*arg, &block)
if @receiver.deleted_at.nil?
super
end
end
end
我知道问题出在方法邮件上。如果我退出此方法,则代码可以正常工作,但需要确保接收者用户已启用。
仅发生丝毫附件。如果只是纯文本,则正文仅打印一次,但是如果我有附件,则正文将打印三遍。
我不知道为什么失败。我认为我的方法还可以。如果条件是真的,我就叫超级。
谢谢。