Оценка того, почему это не работает
Согласно сообщению SO Неверное имя файла в электронной почте (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 будет искать подходящее представление почтовой программы, но как и как мы можем указать 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» в текстовом редакторе.