Rails Mail

Rails Mail

以一个密码找回的实例来演示rails发送邮件:

使用的是公司的邮件服务器,如果没有邮件服务器,可以本地安装一个邮件服务器,具体方法可以baidu、google

1.在environment.rb中配置邮件参数:

   Rails::Initializer.run do |config|
         #config.action_mailer.deliver_method = :smtp | :sendmail | :test
        config.action_mailer.smtp_settings ={
                        #邮件服务器地址

                        :address => "",
                        #邮件服务器端口

                        :port => 25,
                        :domain =>"",

                        #认证方式
                        :authentication => :login,
                        #用户名

                        :user_name => "",

                        #密码
                        :password =>""
        }
        #邮件发送出错是否报错,一般为false
        config.action_mailer.raise_delivery_errors = true

       #默认编码
        config.action_mailer.default_charset = "utf-8"

end

 

2.编写处理邮件的类和邮件内容

   在model中创建Email.rb,代码如下:

    class Email < ActionMailer::Base
     def send(user)

        #邮件标题
        @subject = "密码找回!"
        #接受者email地址

        @recipients=user.email
        #邮件发送方email地址

        @from = ''

        #邮件发送时间
        @send_on = Time.now
        #@headers = {}
        #编码方式

        @charset = "utf-8"
        #传递给view页面的实例,从而view页面就可以使用此实例

        @body[:user] =  user
     end
  end

 

   在view/email下创建与model/Email中send方法同名的send.rhtml ,此页面即为邮件显示内容,代码如下:

   send.rhtml 

  <html>
  <head></head>
  <body>

    <!--使用model/Email中 send方法中的@body[:user] =  user-->
    <p>Dear <%= @user.username %>:  </p>
    <p>您的密码已经修改为:<%= @user.password%>  </p> 
   </body>
</html>

 

3.创建控制器

class GetbackpwdController < ApplicationController
  def emailsend

              .........

             #model/Email使用create_###(###为Email中对应的action名)创建一个Rails email实例
              email = Email.create_send(user)

              #设置为html格式
              email.set_content_type("text/html" )
              #发送邮件

              Email.deliver(email);
             ..........

  end
end

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值