gpt4 book ai didi

ruby-on-rails - Rails ActionMailer 附件显示为乱码

转载 作者:行者123 更新时间:2023-12-04 05:58:20 25 4
gpt4 key购买 nike

我正在尝试在我的一个 rails 应用程序中发送 pdf 附件,但该附件是作为文本而不是正确的 pdf 发送的。

我的邮件看起来像这样:

class Notifications < ActionMailer::Base
def contact(email_params, sent_at = Time.now)
subject "" << email_params[:subject]
recipients "" << email_params[:client]
from "#{email_params[:name]} <#{email_params[:address]}>"
attachments['invoice.pdf'] = File.read("#{Rails.root.to_s}/public#{email_params[:attach]}") unless email_params[:attach].blank?
sent_on sent_at
body :message => email_params[:body], :sender_name => email_params[:name]
end
end

以及我在邮件收件箱中收到的信息:
--
Date: Thu, 23 Feb 2012 13:50:58 -0800
Mime-Version: 1.0
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-ID: <[mailserver]>

Message Body

--
Date: Thu, 23 Feb 2012 13:50:58 -0800
Mime-Version: 1.0
Content-Type: application/pdf;
charset=UTF-8;
filename=invoice.pdf
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename=invoice.pdf
Content-ID: <[mailserver]>

后面跟着一串很长的ascii字符

如果没有任何附件,则不会发送该标题信息,而我只会在收件箱中收到“消息正文”部分。我怀疑 mailer.rb 中附件行的 File.read() 部分是罪魁祸首,但它指向我服务器上的有效 pdf 文件,我可以通过浏览器访问该文件。日志只说邮件是用正确的参数发送的,但它被发送为看起来像反编译的文本或类似的东西,如果你在纯文本编辑器中打开了 pdf。

邮件程序 View contact.html.erb 很简单: <%= @message %> 如果有帮助。

知道我可能做错了什么吗?

谢谢。

更新:

显然,我的 View 目录中需要 contact.erb 和 contact.html.erb。只需复制文件并重命名即可。但是,现在消息正文是空白的。只显示附件。

最佳答案

仅供引用,我遇到了同样的问题,就我而言,解决方案是交换附件和邮件行。先附上,然后打电话邮件。

错了

def pdf_email(email, subject, pdfname, pdfpath)
mail(:to => email, :subject => subject)
attachments[pdfname] = File.read(pdfpath)
end


def pdf_email(email, subject, pdfname, pdfpath)
attachments[pdfname] = File.read(pdfpath)
mail(:to => email, :subject => subject)
end

关于ruby-on-rails - Rails ActionMailer 附件显示为乱码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9422077/

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