加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 03:59:55 所属栏目:百科 来源:网络整理
导读:我正在尝试在我的一个rails应用程序中发送pdf附件,但附件是作为文本而不是正确的pdf. 我的邮件看起来像这样: class Notifications ActionMailer::Base def contact(email_params,sent_at = Time.now) subject "" email_params[:subject] recipients "" emai
我正在尝试在我的一个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一样.

邮件程序视图contact.html.erb只是:<%= @message%>如果这有帮助.

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

谢谢.

更新:

显然,我需要contact.erb,以及我的views目录中的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,pdfpath)
  attachments[pdfname] = File.read(pdfpath)
  mail(:to => email,:subject => subject)
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读