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

ruby – 发送多部分邮件和附件

发布时间:2020-12-17 02:15:24 所属栏目:百科 来源:网络整理
导读:我正在尝试使用带有 Ruby 1.9.3的gem’mail’发送电子邮件.它包含text / html和text / plain部分,它们应作为替代部件和附件嵌入. 这是我目前的代码: require 'mail'mail = Mail.newmail.delivery_method :sendmailmail.sender = "me@example.com"mail.to =
我正在尝试使用带有 Ruby 1.9.3的gem’mail’发送电子邮件.它包含text / html和text / plain部分,它们应作为替代部件和附件嵌入.

这是我目前的代码:

require 'mail'

mail = Mail.new
mail.delivery_method :sendmail
mail.sender = "me@example.com"
mail.to = "someguy@example.com"
mail.subject = "Multipart Test"
mail.content_type = "multipart/mixed"

html_part = Mail::Part.new do
  content_type 'text/html; charset=UTF-8'
  body "<h1>HTML</h1>"
end

text_part = Mail::Part.new do
  body "TEXT"
end

mail.part :content_type => "multipart/alternative" do |p|
  p.html_part = html_part
  p.text_part = text_part
end

mail.add_file :filename => "file.txt",:content => "FILE"

mail.deliver!

它会导致邮件中有替代零件,但没有附件.我正在使用thunderbird 10.0.12进行测试.

我已经在github上发布了这个,但不幸的是这些帖子并没有让我更聪明. https://github.com/mikel/mail/issues/118#issuecomment-12276876.也许有人能够比我更了解最后一篇文章;)

有人能够让这个例子有效吗?

谢谢,
krissi

解决方法

我设法修复它:

html_part = Mail::Part.new do
  content_type  'text/html; charset=UTF-8'
  body          html
end

text_part = Mail::Part.new do
  body          text
end

mail.part :content_type => "multipart/alternative" do |p|
  p.html_part = html_part
  p.text_part = text_part
end


mail.attachments['some.xml'] = {content: Base64.encode64(theXML),transfer_encoding: :base64}
mail.attachments['some.pdf'] = thePDF

mail.content_type = mail.content_type.gsub('alternative','mixed')
mail.charset= 'UTF-8'
mail.content_transfer_encoding = 'quoted-printable'

根本不直观,但阅读Pony源代码有点帮助,以及将工作.eml与此宝石生成的内容进行比较.

(编辑:李大同)

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

    推荐文章
      热点阅读