单独使用ActionMailer作为邮件发送器为迩的程序发送报告

原文在这里:http://stackoverflow.com/questions/4951310/actionmailer-3-without-rails

 OK、先把整个代码都贴出来先、新建一个send_mailer.rb、其实名字随便起、不要紧、写下如下的代码、

 1 require 'action_mailer'
2
3 ActionMailer::Base.raise_delivery_errors = true
4 ActionMailer::Base.delivery_method = :smtp
5 ActionMailer::Base.smtp_settings = {
6 :address => "smtp.gmail.com",
7 :port => 587,
8 :domain => "gmail.com",
9 :user_name => "user_name",
10 :password => "password",
11 :authentication => "plain",
12 :enable_starttls_auto => true
13 }
14
15 ActionMailer::Base.view_paths= File.dirname(__FILE__)
16
17 class ES < ActionMailer::Base
18 default :from => "from@gmail.com"
19
20
21
22 def confirm
23
24 @var = "your name"
25 mail(:to => "to@gmail.com", :subject => "testing mail") do |format|
26 # format.html
27 format.text
28
29 end
30 end
31
32 end
33
34 ES.confirm.deliver

然后再在该rb文件的同一个目录下新建一个目录、名为es、在es文件夹下新建confirm.text.erb

然后再写些冬冬吧、随便填没问题、以下内容其实就是迩邮件的body部分

his is an text email
and this is a variable <%= @var %>

这里使用了一个变量@var、其实这个变量就是从es类那里继承的变量、传递过来的、

下面讲讲为什么是es目录而不是其它、因为基于ActionMailer的内置规则、继承于ActionMailer::Base类的子类名、就是放置模版文件夹的名称、因为

莪定义了一个ES类、当然就是es文件夹了、当然、迩写成ES文件夹都冇问题、

class ES < ActionMailer::Base

呢度有点规则命名迩需要记住下、如果迩嘅类名係EsdfKjj、那么对应嘅文件夹名称就係esdf_kjj、觉得规则麻烦嘛、觉得麻烦勒、莪都觉得麻烦、迩如果唔想理咁多、直接运行程序报错、程序会讲明响边度揾唔着只文件模版、咁迩就按住佢嘅报错嘅路径重新起过条名啦、


从第三行到第十三行就唔使讲啦、基本都係ActionMailer嘅配置、迩如果唔识睇翻本站响Rails用ActionMailer发邮件嘅文章、跟住第十五行果度、係指明模板嘅位置、File.dirname(__FILE__)嘅意思就係文件所在目录果度揾模版文件夹

 然之后ES类就係继承类啦、基本成只都係rails嘅内容就唔讲了、跟住25-27行就讲明要读取html同埋txt格式嘅模板、也就係confirm.html.erb或者

confirm.text.erb、注意、只能用一种格式、莪注释佐html格式援用text嘅



原文地址:https://www.cnblogs.com/klobohyz/p/2234983.html