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.也许有人能够比我更了解最后一篇文章;) 有人能够让这个例子有效吗? 谢谢, 解决方法
我设法修复它:
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与此宝石生成的内容进行比较. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- xml2.changebean
- XML file line #2: Error inflating class android.support
- ruby-on-rails – 解决Rails资产管道中依赖顺序的最佳方法?
- cocos-js开发html5游戏视频教程
- 你可以使用带有Flash故障安全的HTML5视频/音频播放器吗?
- http – 如何在Flutter移动应用程序的API调用中传递基本身份
- 用 AXMLPrinter2、baksmali、smali、dex2jar 反编译.xml文件
- c – shared_ptr构造函数参数是否应按值传递
- 列出PostgreSQL中物化视图的授权和权限
- (转载 )深入Unity 1.x依赖注入容器之二:初始化 Unity