• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

rubyonrails使用gmail的smtp发送邮件

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

参考至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上确实是可以成功发送邮件的。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
设计一款编程语言有多难?Ruby 创始人揭秘发布时间:2022-07-14
下一篇:
Ruby on Rails 和 J2EE:两者能否共存?发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap