gpt4 book ai didi

ruby-on-rails - Prawn pdf附件在邮件中

转载 作者:数据小太阳 更新时间:2023-10-29 06:43:52 29 4
gpt4 key购买 nike

在我的 Rails 应用程序中,我尝试将发票附加到电子邮件中:

def invoice(invoice)
attachment :content_disposition => "attachment",
:body => InvoicePdf.new(invoice),
:content_type => "application/pdf",
:filename => 'invoice.pdf'

mail(:to => @user.email, :subject => "Your Invoice")
end

InvoicePdf是一个Prawn PDF文档:

class InvoicePdf < Prawn::Document
def initialize(order, view)
draw_pdf
end

def draw_pdf
# pdf stuff
end
end

我在电子邮件中没有收到附件。我究竟做错了什么?任何提示都将受到欢迎和赞赏。

编辑: 我使用的 Rails 版本是 3.0.x

最佳答案

看看 Action Mailer Guide .您需要调用 attachments 方法来添加附件。

试试这个:

attachments['attachment_filename'] = InvoicePdf.new(invoice)

这是假设调用 InvoicePdf.new(invoice) 生成一个文件并返回一个表示该文件的 IO 对象。我还注意到您的 InvoicePdf 类初始值设定项需要两个参数,但您只传递了一个。

更新:另请注意,Action Mailer 将获取文件名并计算出 mime 类型,设置 Content-Type、Content-Disposition、Content-Transfer-Encoding 和 base64 为您编码附件的内容,因此手动设置不是除非您想覆盖默认值,否则这是必需的。

根据您的 pdf 生成方法,这可能会更好:

invoice = InvoicePdf.new(invoice)
attachments["invoice.pdf"] = { :mime_type => 'application/pdf', :content => invoice.render }
mail(:to => @user.email, :subject => "Your Invoice")

关于ruby-on-rails - Prawn pdf附件在邮件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12294781/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com