Я пытаюсь отправить вложения в формате pdf в одно из моих приложений rails, но вложение приходит в виде текста, а не в виде обычного 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
Без каких-либо вложений эта информация заголовка не отправляется, и я просто получаю часть «Тело сообщения» в своем почтовом ящике. Я подозреваю, что часть File.read () строки вложения в моем mailer.rb как-то является виновником, но она указывает на действительный файл PDF на моем сервере, к которому я могу получить доступ через мой браузер. Журналы говорят только о том, что письмо было отправлено с правильными параметрами, но оно отправляется как то, что выглядит как декомпилированный текст или что-то вроде, если вы открыли pdf в текстовом редакторе.
Представление почтовой программы contact.html.erb просто: <%= @message %>
Если это поможет.
Есть идеи, что я могу делать не так?
Спасибо.
Обновление:
По-видимому, мне нужно было и contact.erb, и contact.html.erb в моей директории views. Просто скопировав файл и переименовав его работало. Однако теперь тело сообщения пустое. Отображается только вложение.