上一遍已经介绍了简单的rails发送mail 的demo,这个demo介绍rails发送text/html格式的邮件
预览:
步骤:
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.blogjava.net/fl1429">http://www.blogjava.net/fl1429</a> Thanks |
5,发送邮件
http://localhost:3000/findpassword/index
注意点
1,使用text/html格式发送邮件,不是通过@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不起到作用,我还苦于在网上没找到结果,突然我发现时如此的简单,一般邮件都自带设置发件人名称的功能(在个人账户处),例如gmail的是下图这样设置的:
126的是这样设置的:
收到邮件后就是这样了,发件人处就是现实自己设置的名称:
posted on 2009-05-04 18:40
fl1429 阅读(967)
评论(2) 编辑 收藏 所属分类:
Rails