gpt4 book ai didi

ruby-on-rails - ActionMailer 问题 - 发送 PDF 附件的正确语法是什么

转载 作者:行者123 更新时间:2023-12-02 00:46:06 24 4
gpt4 key购买 nike

使用 actionmailer 发送包含一些 PDF 文件附件的电子邮件的正确语法是什么?我正在使用带有 TLS 插件的 Gmail for SMTP。到目前为止,这是我所拥有的(并且也尝试过对此进行变体):

**lead_mailer.rb:**

def auto_response(lead)
recipients lead.email
subject "Information"
body :recipient => lead.first_name
from "me@mydomain.com"
attachment "application/pdf" do |a|
a.body = File.read(RAILS_ROOT + "/public/files/Datasheet.pdf")
end
attachment "application/pdf" do |a|
a.body = File.read(RAILS_ROOT + "/public/files/OtherSheet.pdf")
end
end

**lead_observer.rb:**

class LeadObserver < ActiveRecord::Observer
def after_save(lead)
mail = LeadMailer.create_auto_response(lead)
LeadMailer.deliver(mail)
end
end

问题是它发送了附件,但它们显示为“无名称”,即使在打开它们时它们显示正确。但是,电子邮件的正文根本不会出现。我确信我在做一些简单的错误的事情。

最佳答案

好吧,我离开了一会儿,回来又用谷歌搜索了一下,得到了答案!

来自 API:

如果任何附件或部分已添加到电子邮件,则不会执行隐式模板呈现。这意味着您必须手动将每个部分添加到电子邮件并将电子邮件的内容类型设置为 multipart/alternative。

对于主要的邮件程序方法,我切换了正文并添加了这个显式渲染。注意 - 我跳过了 multipart/alternative 并且它起作用了,很可能是因为我发送的是纯文本电子邮件。

part        :body => render_message('auto_response', :recipient => lead.first_name) 

对于附件命名问题,我是这样处理的:

attachment  "application/pdf" do |a|
a.body = File.read(RAILS_ROOT + "/public/files/OtherSheet.pdf")
a.filename = "Othersheet.pdf"
end

关于ruby-on-rails - ActionMailer 问题 - 发送 PDF 附件的正确语法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/529970/

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