上一遍已經(jīng)介紹了簡(jiǎn)單的rails發(fā)送mail 的demo,這個(gè)demo介紹rails發(fā)送text/html格式的郵件
預(yù)覽:
步驟:
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://m.tkk7.com/fl1429">http://m.tkk7.com/fl1429</a> Thanks |
5,發(fā)送郵件
http://localhost:3000/findpassword/index
注意點(diǎn)
1,使用text/html格式發(fā)送郵件,不是通過(guò)@headers起到效果的,而是通過(guò)ActionMailer::Base.default_content_type = "text/html" 配置
2,body部分可以
@body["title"] = 'This is title'
@body["email"] = 'sender@yourdomain.com'
@body["message"] = message
這么寫,也可以按照我上遍那樣寫成hash格式的
3,還記得上一遍說(shuō)道@from不起到作用,我還苦于在網(wǎng)上沒找到結(jié)果,突然我發(fā)現(xiàn)時(shí)如此的簡(jiǎn)單,一般郵件都自帶設(shè)置發(fā)件人名稱的功能(在個(gè)人賬戶處),例如gmail的是下圖這樣設(shè)置的:
126的是這樣設(shè)置的:
收到郵件后就是這樣了,發(fā)件人處就是現(xiàn)實(shí)自己設(shè)置的名稱:

posted on 2009-05-04 18:40
fl1429 閱讀(972)
評(píng)論(2) 編輯 收藏 所屬分類:
Rails