隨筆-167  評論-65  文章-0  trackbacks-0

          上一遍已經(jīng)介紹了簡單的rails發(fā)送mail 的demo,這個demo介紹rails發(fā)送text/html格式的郵件

          預(yù)覽:

          image

          步驟:

          1,看我上遍的介紹安裝smtp_tls,然后在environment.rb最后中添加

          ActionMailer::Base.default_content_type = "text/html"

          2,model

          class Findpassword < ActionMailer::Base 
            def contact(recipient, subject, message)
              @subject = subject
              @recipients = recipient
              @from = 'no-reply@yourdomain.com'
              @sent_on = Time.now
                @body["title"] = 'This is title'
              @body["email"] = 'sender@yourdomain.com'
              @body["message"] = message
              @headers = {}
             # @headers = {content_type => 'text/html'}
            end
          end

          3,controller

          class FindpasswordController < ApplicationController
            def index
                render :file => 'app\views\findpassword\index.rhtml'
             end
            def sendmail
              email = params["email"]
                recipient = email["recipient"]
                subject = email["subject"]
                message = email["message"]
              puts recipient + subject + message
              Findpassword.deliver_contact(recipient, subject, message)
              return if request.xhr?
              render :text => 'Email send successfully'
            end

          end

          4,view

          views/findpassword/index.rhtml

          <h1>Send Email</h1>
          <% form_tag :action => 'sendmail' do %>
          <p><label for="email_subject">Subject</label>:
          <%= text_field 'email', 'subject' %></p>
          <p><label for="email_recipient">Recipient</label>:
          <%= text_field 'email', 'recipient' %></p>
          <p><label for="email_message">Message</label><br/>
          <%= text_area 'email', 'message' %></p>
          <%= submit_tag "Send" %>
          <%  end   %>

          views/findpassword/contact.rhtml

          Hi!
          You are having one email message from <font color="red"><%= @email %></font><br/>
          with a tilte <font color="red"><%= @title %></font><br/>
          and following is the message:
          <font color="red"><%= @message %></font><br/>
          please visit  website:
          <a href="http://www.aygfsteel.com/fl1429">http://www.aygfsteel.com/fl1429</a>
          Thanks

          5,發(fā)送郵件

          http://localhost:3000/findpassword/index

          注意點(diǎn)

          1,使用text/html格式發(fā)送郵件,不是通過@headers起到效果的,而是通過ActionMailer::Base.default_content_type = "text/html" 配置

          2,body部分可以

            @body["title"] = 'This is title'
              @body["email"] = 'sender@yourdomain.com'
              @body["message"] = message

          這么寫,也可以按照我上遍那樣寫成hash格式的

          3,還記得上一遍說道@from不起到作用,我還苦于在網(wǎng)上沒找到結(jié)果,突然我發(fā)現(xiàn)時如此的簡單,一般郵件都自帶設(shè)置發(fā)件人名稱的功能(在個人賬戶處),例如gmail的是下圖這樣設(shè)置的:

          image

          126的是這樣設(shè)置的:

          image

          收到郵件后就是這樣了,發(fā)件人處就是現(xiàn)實自己設(shè)置的名稱:

          image



          write by feng
          posted on 2009-05-04 18:40 fl1429 閱讀(976) 評論(2)  編輯  收藏 所屬分類: Rails

          評論:
          # re: Rails Send Mail Demo2[未登錄] 2009-05-18 19:04 | tingting
          Findpassword.deliver_contact(recipient, subject, message)
          我用的時候發(fā)現(xiàn)沒有這個方法哦,只有這個deliver方法呢  回復(fù)  更多評論
            
          # re: Rails Send Mail Demo2 2009-05-19 10:21 | fl1429
          deliver_contact contact方法在model里,send mail調(diào)用的時候必須這么寫!  回復(fù)  更多評論
            
          已訪問數(shù):
          free counters
          主站蜘蛛池模板: 利川市| 扬中市| 海兴县| 遂宁市| 三明市| 财经| 奉化市| 崇州市| 鄂托克旗| 三门峡市| 鸡西市| 东安县| 黄梅县| 六枝特区| 桃源县| 东平县| 丹寨县| 双江| 晋中市| 河北省| 册亨县| 清远市| 尉氏县| 土默特右旗| 湘乡市| 九江市| 德钦县| 垫江县| 板桥市| 沐川县| 固阳县| 婺源县| 沙田区| 临洮县| 泗洪县| 安庆市| 桂东县| 剑阁县| 札达县| 东城区| 敖汉旗|