Rails Action Mailer Document

Posted lancgg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails Action Mailer Document相关的知识,希望对你有一定的参考价值。

创建: 2019/10/01

 

设定
 Action Mailer的设定参数

 

 delivery_method

 发送邮件的方法

 ● 默认: :smtp

 ● 可设定值

 

 :smtp  经smtp服务器发送
 :sendmail  用sendmail命令
 :file  把邮件作为文件保存
 :test

 测试模式

 (把邮件已数组形式返回)

 

 default_options  默认的邮件header
 interceptors  应用的interceptor
 perform_deliveries

 delivery方法是否实际发送邮件

 ● 默认: true

 raise_delivery_errors

 邮件发送失败时是否抛出error

 ● 默认: true

 show_previews

 mail preview功能是否有效

 ● 默认: development环境 true

           test/product环境  false

 smtp_settings

 smtp模式下的设定 

 address

 smtp服务器的主机名

 ● 默认 localhost

 port

 smtp服务器的port

 ● 默认: 25

 domain

 HELO domain

 ● 默认: localhost.localdomain

 user_name  用户名
 password  密码 
 authentication

 认证方法

 :plain, :login, :cram_md5

 

 sendmail_settings

 sendmail模式下的设定

 location

 命令的位置

 ● 默认: /usr/bin/sendmail

 arguments

 sendmail命令的选项

 ● 默认: -i -t

 

 file_settings

 file模式下的设定

 location

 信息的保存位置

 ● 默认: #Rails.root/tmp/mails

   

 

   

 

   
发送邮件
 生成mailer  
rails generate mailer name method [options]

 

 name  mailer名
 method  方法名
 options

 

 -f --force  已经存在的文件则覆盖
 -p --pretend  不生成文件,只是测试运行结果
 -q --quiet  不显示过程(进度)
 -s --skip  存在同名文件则跳过该文件

 

 例:

rails g mailer learning_mailer::sample t1 t2 t3 t4

 

 

 编辑mailer

 

 default

 设定此mailer的默认header

  default header: value [, ...] 

 to, cc, bcc  收件人,抄送,密送
 subject  邮件内容 
 from  发信人
 date  发送日期时间
 reply_to  回复时接收的邮箱

 x_priority/

 x_msmail_priority

 邮件的重要度

 (x_priority的1, x_msmail_priority的High为最高)

 content_type

 内容种类

 ● 默认: text/plain

 charset

 使用的字符码

 ● 默认: UTF-8

 parts_order

 复杂内容的插入顺序?

 ● 默认: ["text/plain", "text/enriched", "text/html"] 

 mime_version  MIME的version
   

 

 mail

 发送邮件
 (相当于render)

 

mail headers

 

  headers

 header信息

 参见default

   

 

 

 编辑view 

 

 和controller的view的不同:

 

 url_for

 mailer里没有绝对路径,故需指定host

url_for host: "www.xxx.com", controller: "a", action: "b"

 

   

 

   

 

   
   
多种格式发送邮件
 html邮件  html.erb
 附加文件

 

attachments[file.file] = File.read(Rails.root.join(....))

 

 

 layout   TODO
   
   
preview邮件
   test/mailers/previews/里下测试代码
   
   
   
   
发送前进行处理
   类名随意, 推荐最后Interceptor
 条件

 实现self.delivering_email(mail)方法

 mail是Mail::Message类

   
   
   
mailer的unit test
   TODO
   
   
   
   

以上是关于Rails Action Mailer Document的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4.1 Mailer预览和设计自定义电子邮件

Rails 邮件程序在电子邮件上发送空正文

Rails 6 ActionMailer预览和http基本身份验证

Action Job/Mailer 的 `deliver_now` 和 `deliver_later` 之间的区别

用户确认电子邮件不发送到生产中。 Rails,Heroku,Gmail

Rails Mailer - 无法从 Mailer 视图访问实例变量