rails mailer

2015-09-27  本文已影响128人  33d8e4ec2cc9

归纳一下怎么用rails的mailer来发送邮件

首先先创建Mailer文件

rails g mailer UserMailer

会生成以下文件

create  app/mailers/user_mailer.rb
create  app/mailers/application_mailer.rb
create    app/views/user_mailer
create    app/views/layouts/mailer.text.erb
create    app/views/layouts/mailer.html.erb

然后进入mailers文件里的user_mailer.rb进行配置,如果你只是想发一封简单的邮件,可以把 classUserMailer < ApplicationMailer改成 UserMailer < ActionMailer::Base,使用  default from:"xxx"来设定发件人的名字,然后就可以开始写发邮件的方法了

def deliver_mail
  address = xxx@xxx.com
  mail(to: address, subject: '这是一封邮件')
end

当然你也可以接受参数,从而使收件人成为一个变量,甚至你也可以在邮件里添加附件
使用
attachments["your_file"] = File.read(your_file)来发送一封带有附件的邮件

接下来去编写邮件的页面和样式
去view下的user_mailer下面创建和你发邮件方法名相同的html
deliver_mail.html.erb
里面可以按自己的需求来写。

之后你就可以在任何你想要发邮件的时候通过调用这个方法来发送邮件

UserMailer.deliver_mail.deliver_now可以立即发送
当然你也可以不立即发送而是选择过一会
用.deliver_later(wait:1.hour)可以一个小时后发送

上一篇下一篇

猜你喜欢

热点阅读