rails 发送电子邮件(ActionMailer)
程序员文章站
2022-07-15 20:07:47
...
1: 复制以下配置邮件的代码到environment.rb文件下面或者其他的环境文件中
ActionMailer::Base.default_charset = "utf-8" # 设置发送邮件的内容的编码类型
ActionMailer::Base.default_content_type = "text/html" # 发送邮件的默认内容类型
ActionMailer::Base.delivery_method = :smtp # 以smtp邮件传送协议发送邮件
ActionMailer::Base.smtp_settings = { # 邮件服务器的设置
:address => "smtp.163.com",
:port => 25,
:domain => "163.com",
:authentication => :login,
:user_name => "zhangcaiyan0123@163.com",
:password => "zhangcaiyan"
}
解释:
address: SMTP邮件服务器地址
port: SMTP邮件服务器端口
domain: 当识别自己是服务器时 mailer应该使用的域名
authentication: 邮件服务器验证方式(:plain,:login,或:cram_md中的一个。你的服务器管理员将帮助选择正确的选项。当前没使用TLS(SSL)来从Rails连接邮件服务器的方式。这个参数应该被忽略,如果你的服务器不要求确认。)
user_name: 邮件服务器的用户名称(如果:authentication被设置则要求有此)
password: 邮件服务器的用户密码(如果:authentication被设置则要求有此)
enable_starttls_auto: 打开ssl连接(true或false)
2: ruby script/generate mailer email 创建名称为Email的mailer模型文件
3 : 在Email的mailer文件中创建发送邮件的方法:
def confirm(email)
subject "激活'我的生活'账户"
recipients email
from 'zhangcaiyan0123@163.com'
sent_on Time.now
body "欢迎加入‘我的生活’,我们致力于更加方便的生活,请点击激活账户"
end
注意:
subject: 邮件标题
recipients : 邮件收件人地址
from: 邮件来源地址
sent_on: 邮件发送时间
body: 邮件具体内容
4: 发送邮件
email = Email.create_confirm("zhangcaiyan0123@163.com") 创建邮件实例
Email.deliver(email) 发送邮件
或者
Email.deliver_confirm("zhangcaiyan0123@163.com") 直接发送邮件
eg: gmail服务器的配置
config_file = "#{Rails.root}/public/config/smtp_gmail.yml"
config_options = YAML.load_file(config_file)
ActionMailer::Base.default_charset = "utf-8"
ActionMailer::Base.default_content_type = "text/html"
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:authentication => :login,
:enable_starttls_auto => true
}.merge(config_options)
ActionMailer::Base.default_charset = "utf-8" # 设置发送邮件的内容的编码类型
ActionMailer::Base.default_content_type = "text/html" # 发送邮件的默认内容类型
ActionMailer::Base.delivery_method = :smtp # 以smtp邮件传送协议发送邮件
ActionMailer::Base.smtp_settings = { # 邮件服务器的设置
:address => "smtp.163.com",
:port => 25,
:domain => "163.com",
:authentication => :login,
:user_name => "zhangcaiyan0123@163.com",
:password => "zhangcaiyan"
}
解释:
address: SMTP邮件服务器地址
port: SMTP邮件服务器端口
domain: 当识别自己是服务器时 mailer应该使用的域名
authentication: 邮件服务器验证方式(:plain,:login,或:cram_md中的一个。你的服务器管理员将帮助选择正确的选项。当前没使用TLS(SSL)来从Rails连接邮件服务器的方式。这个参数应该被忽略,如果你的服务器不要求确认。)
user_name: 邮件服务器的用户名称(如果:authentication被设置则要求有此)
password: 邮件服务器的用户密码(如果:authentication被设置则要求有此)
enable_starttls_auto: 打开ssl连接(true或false)
2: ruby script/generate mailer email 创建名称为Email的mailer模型文件
3 : 在Email的mailer文件中创建发送邮件的方法:
def confirm(email)
subject "激活'我的生活'账户"
recipients email
from 'zhangcaiyan0123@163.com'
sent_on Time.now
body "欢迎加入‘我的生活’,我们致力于更加方便的生活,请点击激活账户"
end
注意:
subject: 邮件标题
recipients : 邮件收件人地址
from: 邮件来源地址
sent_on: 邮件发送时间
body: 邮件具体内容
4: 发送邮件
email = Email.create_confirm("zhangcaiyan0123@163.com") 创建邮件实例
Email.deliver(email) 发送邮件
或者
Email.deliver_confirm("zhangcaiyan0123@163.com") 直接发送邮件
eg: gmail服务器的配置
config_file = "#{Rails.root}/public/config/smtp_gmail.yml"
config_options = YAML.load_file(config_file)
ActionMailer::Base.default_charset = "utf-8"
ActionMailer::Base.default_content_type = "text/html"
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:authentication => :login,
:enable_starttls_auto => true
}.merge(config_options)
上一篇: 同时分页查找没有关联关系的多个表
下一篇: rails 笔记