码迷,mamicode.com
首页 > 其他好文 > 详细

ruby on rails使用gmail的smtp发送邮件

时间:2016-01-23 12:49:12      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

参考至http://guides.rubyonrails.org/action_mailer_basics.html

  1. 在gmail账户的安全里先开启两步验证(链接:https://myaccount.google.com/security),在生成一个应用专用密码,再后面需要使用。
  2. 在控制台下进入到rails项目的根目录,执行rails generate mailer UserMailer
    技术分享
  3. 找到app/mailers/user_mailer.rb文件,如下图:
    技术分享
  4. 在第三步里,可以看到在UserMailer里添加了send_email方法,接下来就需要创建对应的Mailer的视图,在app/views/user_mailer文件夹下(因为有些邮件客户端不支持html,所以同时创建一个text文本,两个一起发送),和方法名一致,当调用send_email,就会使用对应的视图。UserMailer就是一个控制器,send_email就是action,send_email.html.erb和send_email.text.erb就是对应的视图。
    技术分享
  5. send_email.html.erb内容
    技术分享send_email.text.erb的内容就是把send_email.html.erb里的所有html标签去掉,只留下文本,如下图:
    技术分享
  6. 现在controller#action view都有了,由于只是简单测试,model就没有加上,只需在action改成对应model的邮件或者其他的就可以了。
  7. 接下来在config/application.rb文件中配置gmail的smtp服务器,如下图(由于gmail需要FQ才能测试,所以在实际开发中,关于gmail的smtp服务器的配置可以放在production.rb文件中,在test.rb和development.rb文件中用其他邮箱代替,我使用的是qq的smtp服务器,只要的qq中开通smtp服务,并且获得qq的客户端的专用密码)
    技术分享
    qq的smtp服务配置
    技术分享
  8. 最后一步,通过调用UserMailer.send_email.deliver_now就能发送邮件
    UserMailer.send_email.deliver_now

     

  9. 由于使用的gmail的smtp服务器,测试需要FQ,所以本地也就没法测试。但是本人部署到heroku上确实是可以成功发送邮件的。
    技术分享

ruby on rails使用gmail的smtp发送邮件

标签:

原文地址:http://www.cnblogs.com/jecyhw/p/5152230.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!