rails 发送电子邮件(ActionMailer)

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 => "[email protected]",
    :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       '[email protected]'
    sent_on    Time.now

    body       "欢迎加入‘我的生活’,我们致力于更加方便的生活,请点击激活账户"
  end

注意:

subject:    邮件标题
recipients :  邮件收件人地址
from:        邮件来源地址
sent_on:      邮件发送时间
body:        邮件具体内容


4:  发送邮件

email = Email.create_confirm("[email protected]")   创建邮件实例
Email.deliver(email)     发送邮件

或者

Email.deliver_confirm("[email protected]")  直接发送邮件


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)

你可能感兴趣的:(生活,配置管理,Ruby,Rails,Gmail)