"test@-6ren">
gpt4 book ai didi

ruby-on-rails-3 - 在一两行中使用 ActionMailer::Base 在 Rails 3.0 中发送带有附件的邮件

转载 作者:行者123 更新时间:2023-12-04 07:03:35 26 4
gpt4 key购买 nike

这是我的第一个问题,但我想要做的是使用一两行在 rails 控制台中发送带有附件的邮件。我不想实例化像..

类 Mailer < ActionMailer::Base
...
结尾

我想这样试试:

m=ActionMailer::Base.mail(:to => "harry@example.com", :from => "test@example.com", :subject=>"test from zip", :content_type=>"multipart/mixed")
m.attachments['file.zip']={:mime_type => "application/zip", :data=>File.read("#{Rails.root}/tmp/test.zip")}
m.deliver

这将发送一封电子邮件,但附件名为 noname,无法解压缩。似乎它没有正确解析附件的数据。如果我查看原始电子邮件,附件内容如下所示:
--
Date: Tue, 06 Mar 2012 06:59:42 -0800
Mime-Version: 1.0
Content-Type: application/zip;
charset=UTF-8
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename=file.zip
Content-ID: <4f56264f16e82_498a46e93467093@ip-10-125-15-127.mail>

UEsDBBQAAAAIAE9iZUBSMYOwkKgZANRakgAQABUAbG9hbl9kZXRhaWxzLmNz
dlVUCQADlh9VT0QfVU9VeAQA6APoA8xdW3PiuLZ+37+Ch6ldZ1dZGUvyNW/c
EwKBQLiENze4gytgZ9tmMplff5YMlgQWmV1tk5qufiAkwV8trcu3bko/8sLa
m/+p9dmLJPXSfaI1oyR4Df21Non28crPvt+MfS/117Uo5C+9VKu/v8fRH4e3
O0HobWte9g68gHdaQfJjHyeHb4/9/+79JPu9XbQPU22y2kTRVuv74dqPa7G/
...

1) 是否甚至可以发送带有此类附件的电子邮件,而无需使用类似 pony 的内容 gem

最佳答案

对它不起作用的原因的估计

根据 SO 帖子 Invalid filename in email (ActionMailer)似乎是 ActionMailer 想要从文件中自动收集信息,而这在控制台中是不可用的。

我注意到以下内容虽然很乱,但可以从控制台运行(足以满足我的目的):

File.open("magical_elephant_potato.txt", 'w') {|f| f.write("Heyyyy youuu!") }
m=ActionMailer::Base.mail(:to => "rainbowpony@company.com", :from => "noreply@railsapp.com", :subject=>"Behold my MEP attache", :content_type=>"multipart/mixed")
m.attachments['magical_elephant_potato.txt']=File.read("magical_elephant_potato.txt")
m.deliver
FileUtils.rm('magical_elephant_potato.txt')

鉴于通过控制台写入和删除文件的工作,也许可以写入,使用然后删除ActionMailer所需的文件?不过,我们正在进入棘手的变通领域。一个问题是 ActionMailer 将寻找合适的邮件程序 View ,但是我们如何以及如何告诉 ActionMailer 在哪里查找邮件程序文件呢? (如,文件名)

至于未正确编码的信息,我认为问题在于它被包装在带有一些标题信息的“noname”文件中。数据可能完好无损,就像我的例子一样:
--
Date: Tue, 08 Jan 2013 11:08:57 +0000
Mime-Version: 1.0
Content-Type: text/plain;
charset=UTF-8;
filename=magical_elephant_potato.txt
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename=magical_elephant_potato.txt
Content-ID: <50bbfe4898ac_6d7febf6a312062@ws9.companydev.com.mail>

Heyyyy youuu!

----

:当我用文本编辑器打开“noname”时。

关于ruby-on-rails-3 - 在一两行中使用 ActionMailer::Base 在 Rails 3.0 中发送带有附件的邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9589661/

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