[Ruby on Rails]Rails 3使用ActionMailer通过163发送邮件
最近用到发送邮件的功能,没办法只能现学,天生愚钝啊,用了两天才弄明白了。。记录一下
---------------------------------------------------
在models 里边新建一个mailer 模型
class Notifier < ActionMailer::Base
def send_mail(params = {})
load_settings_default
@mail_body = params[:mail_body]
mail(:subject => params[:subject],
:to =>"*****@***.com",
:from => '*****@163.com',
:date => params[:date]
)
end
end
*subject主题.
* body 是Ruby的hash结构。你可以创建三个值对title, email, message
* recipients接受邮件的地址列表
* from发件人地址列表.
* sent_on发送时间.
* headers是另外的hash结构标识header信息如,配置MIME typeplain text 或 HTML
---------------------------------------------
然后在controller 里边引用model中的方法
Notifier.send_mail({:subject => "subject", :mail=>"×××××××@###.com",:date => Time.now, :mail_body => "mail_body"}).deliver
(格式内容仅供参考)
上边是Rails3的调用方法之前版本的可以试一下:
Notifier.deliver_send_email({:subject => "subject", :mail=>"×××××××@###.com",:date => Time.now, :mail_body => "mail_body"})
--------------------------------------
最后在environment.rb里边设置发送邮件服务器
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "smtp.163.com",
:port => 25,
#:domain => "www.163.com",
:authentication => :login,
:user_name => "*******@163.com",
:password => "*******" #用户名和密码是163邮箱的,需要验证
}
(位置要注意,放在最后的End后边或是environment.rb文件的最后)
---------------------------------------------------------
以上仅仅是个人总结的内容,如有误导大家,请见谅;有错误请指出~谢谢!