/ SMTP

Ruby on rails使用SMTP发送邮件

折腾了两天才搞定,国内ROR的资料真是太少了,官方文档感觉写得也不太友好。

1.配置SMTP

在config/environments/production.rb中添加配置

config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => "smtp.qq.com", :port => "25", :authentication => :plain, :user_name => "leo108", :password => "password" }

2.新建mail模型

在app/mailers目录下新建文件emailer.rb,内容如下

class Emailer < ActionMailer::Base default from: 'leo108@qq.com' def contact(recipient, subject, message) mail(:to=>recipient, :subject=>subject) do |format| format.html { render :text => message } end end end

default from的设置一定要和你smtp的帐户相对应,否则可能出错。

3.在controller中使用Emailer

def sendmail recipient = 'root@leo108.com' subject ="测试" message = "

html邮件测试

" Emailer.contact(recipient, subject, message).deliver render :text=>'OK' end

折腾了两天主要问题就出在controller这边,网上的代码基本上都是使用Emailer.deliver_contact方法发送,但是我查看报错日志,显示没有deliver_contact方法,最终还是在官方文档找到了使用方法。

Ruby on rails使用SMTP发送邮件
Share this