Я хочу сгенерировать данные CSV и отправить их по почте на какой-либо адрес электронной почты. Для генерации CSV я использую FasterCSV со следующим кодом:
csv_data = FasterCSV.generate(:col_sep => ";") do |csv|
csv << ["timestamp", "staff_firstname", "staff_lastname", "message"]
log.each do |log_entry|
csv << [log_entry.timestamp, log_entry.staff_firstname, log_entry.staff_lastname, log_entry.message]
end
end
csv_data, который я хочу отправить через метод ActionMailer, и поэтому я использую следующий код:
def log_csv_export(log_csv, email)
mail.attachments["log.csv"] = log_csv
mail(:to => email, :subject => 'Export Log' )
end
Для вызова метода ActionMailer я использую:
AccountMailer.log_csv_export(csv_data, email).deliver
Если я проверю его, письмо будет отправлено на переданный адрес электронной почты, но без вложения. CSV-данные отображаются в текстовом виде в виде обычного текста, но не в виде вложений для сохранения.
Эта проблема возникает, только если я отправляю почту через mailkuer heroku. Если я проверяю это с
ActionMailer::Base.delivery_method = :sendmail
в конфиге, тогда работает.
Кто-нибудь знает, в чем проблема или что мне нужно изменить, чтобы она работала?
Спасибо.