- 执行
rails g mailer TestMailer
- 在
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 }
- 在
app/mailers
下找到test_mailer.rb
文件,增加
default from: "xxx@xxx.xx"
def sendmail
mail(to: "xxx@xxx.xx", subject: 'your subjec')
end
- 在一个controller中调用
TestMailer.sendmail.deliver
这个方法 - 在
app/views/test_mailer
文件夹下增加yoursendmail.html.erb
和yoursendmail.text.erb
文件,写入邮件的布局代码
这样就OK了
开始的时候,一直发不过。最后发现是配置错了,在用之前需要多测试一下配置是不是正确的。
也可以把配置改成这个::enable_starttls_auto => false
似乎在sendmail方法中调用两行mail(to: xxxx, subject: xxxxxx)不行。。。。不知道原因