Rails 2 - отправка pdf через emailer - PullRequest
0 голосов
/ 21 декабря 2011

Я использую ruby ​​1.8.7, rails 2.3.4, rubygems 1.3.6, windows 7 home basic.

Цель: преобразовать html-страницу в pdf и отправить ее по электронной почте.(как квитанция онлайн)

Вот что я использовал: prawn (для pdf) e-mail (для электронной почты)

вопрос: как мне отправить электронное письмо на реальный адрес электронной почты?Все, что я получил из учебника - это отправка «электронного письма», которое можно увидеть в командной строке.это все.Другой вопрос, как генерировать PDF на лету, то есть не должно быть сгенерированного файла и прикрепить его к электронному письму?Это действительно тяжело, и я работаю над этим уже несколько недель.спасибо.

1 Ответ

1 голос
/ 21 декабря 2011

Точный ответ на ваш вопрос зависит от того, как именно вы генерируете свои 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...