我使用的是ruby 1.8.7,rails 2.3.4,rubygems 1.3.6,windows 7 home basic。
目标:将html页面转换为pdf并通过电子邮件发送。 (如在线收据)
以下是我使用的:prawn(for pdf)emailer(电子邮件)
问题:如何发送电子邮件到真实的电子邮件地址?我从教程中得到的就是发送一封"电子邮件"可以在命令提示符中看到。这就是全部。另一个问题是如何动态生成pdf,这意味着应该没有生成文件并将其附加到电子邮件中?这真的很难,我已经在这几周工作了。感谢。
答案 0 :(得分:1)
你的问题的确切答案取决于你如何生成你的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中附件的详细信息,请参阅The rails docs
编辑:您还应确保已编辑配置文件,以确保您的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 guide