rails发邮件

  1. 执行rails g mailer TestMailer
  2. config/environments文件夹下。修改development.rb或者production.rb文件:
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.perform_deliveries = true
  config.action_mailer.default :charset => 'utf-8'
  config.action_mailer.default_url_options = {:host => 'localhost:3000'}
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    address:              'smtp.ym.163.com',
    port:                 "25",
    domain:               yourdomain,
    user_name:           yourusername,
    password:             youpassword,
    authentication:       :plain,
    enable_starttls_auto: true  }
  1. app/mailers下找到test_mailer.rb文件,增加
default from: "[email protected]"
def sendmail
    mail(to: "[email protected]", subject: 'your subjec')
end
  1. 在一个controller中调用TestMailer.sendmail.deliver这个方法
  2. app/views/test_mailer文件夹下增加yoursendmail.html.erbyoursendmail.text.erb文件,写入邮件的布局代码

这样就OK了

开始的时候,一直发不过。最后发现是配置错了,在用之前需要多测试一下配置是不是正确的。
也可以把配置改成这个::enable_starttls_auto => false
似乎在sendmail方法中调用两行mail(to: xxxx, subject: xxxxxx)不行。。。。不知道原因

你可能感兴趣的:(rails发邮件)