归纳一下怎么用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)可以一个小时后发送
网友评论