Точный ответ на ваш вопрос зависит от того, как именно вы генерируете свои PDF-файлы, но вот пример, который должен работать:
1) В вашем файле контроллера (как часть действия)
pdf_doc = Prawn::Document.new()
pdf.text "Hello, world" # etc, etc
data_string = pdf_doc.render
user = 'me@example.com'
Emailer.deliver_email_with_attachment(user,data_string)
2) В вашем почтовом файле (например, app / models / emailer.rb)
class Emailer < ActionMailer::Base
def email_with_attachment(user, data)
# setup your email as normal using @from, @subject, etc
@from = user
# now attach the pdf
attachment :content_type => "application/pdf", :body => data
end
end
для получения дополнительной информации о вложениях в ActionMailer см. Документация по rails
РЕДАКТИРОВАТЬ : Вы также должны убедиться, что вы отредактировали свои конфигурационные файлы, чтобы приложение rails могло отправлять электронные письма. Поскольку вы используете Windows, вам нужно настроить отправку по SMTP:
конфиг / окружающая среда / development.rb
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "my.smtp-server.com",
:port => 25,
:domain => 'iwantgreatcare.org',
:user_name => 'username',
:password => 'password',
:authentication => 'plain',
}
Подробнее о настройке smtp см. В руководстве Rails ActionMailer