JavaMail学习笔记-4(邮件模板的套用,例如论坛注册回复邮件)

本文介绍了一个使用JavaMail发送带有HTML格式邮件的实例。通过前端页面收集用户信息,并利用邮件模板构造个性化邮件内容。

邮件模板的套用:

1.编写前端页面,简单起见只输入注册用户名及邮箱地址

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  
<head>
    
<title>JavaMail4.html</title>
  
</head>
  
  
<body>
    
<form action="SEND4" method="post">
          username:
<input type="text" name="uname"><br>
          Email:
<input type="text" name="email"><br>
          
<input type="submit" value="submit">
     
</form>
  
</body>
</html>


 2.编写一个回复的HTML模板,起名为mail.properties

message=<html><body><h2>Hi,<font color=red> {0} </font>, your password is : {1} , Welcome to : <href="http://blog.youkuaiyun.com/CodeDestiny/">My Blog</a></h2></body></html>

3.编写servlet : SEND4.java

package com.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.MessageFormat;
import java.util.Date;
import java.util.Properties;
import java.util.ResourceBundle;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SEND4 extends HttpServlet {

    
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType(
"text/html;charset=GB18030");
        PrintWriter out 
= response.getWriter();
        request.setCharacterEncoding(
"GB18030");
        
        
//绑定邮件模版,mail对应mail.properties
        ResourceBundle messages = ResourceBundle.getBundle("mail");
        
        String from 
= "admin@codedestiny-pc.com";
        String to 
= request.getParameter("email");
        String subject 
= "欢迎你注册";
        String uname 
= request.getParameter("uname");
        String upass 
= "codedestiny-pc";
        
        
// 确定要发送的邮件服务器的地址
        String mailserver = "codedestiny-pc";
        
        
try {
            Object[] args 
= {uname,upass};
            
            
//新建标准的格式
            MessageFormat formatter = new MessageFormat("");
                        
            
//从资源文件中获取相应的模版信息
            formatter.applyPattern(messages.getString("message"));
            
            
//填充模版,产生回复信息
            String msgtext = formatter.format(args);
            
            Properties prop 
= System.getProperties();
            prop.put(
"mail.smtp.host", mailserver);
            
            
// 建立邮件发送的连接
            Session session = Session.getDefaultInstance(prop, null);
            
            
// 创建发送的信息的载体
            Message msg = new MimeMessage(session);
            
            
// 设置相关的邮件属性
            msg.setFrom(new InternetAddress(from));
            
            
// 点到点的发送
            msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
        
            msg.setSubject(subject);
            msg.setSentDate(
new Date());
            MimeBodyPart mbp 
= new MimeBodyPart();
            mbp.setContent(msgtext, 
"text/html;charset=GB18030");
            Multipart mp 
= new MimeMultipart();
            mp.addBodyPart(mbp);
            msg.setContent(mp);
            
            
// 发送
            Transport.send(msg);
            
        }
 catch (Exception e) {
            e.printStackTrace();
        }

        out.print(
"Register is OK!<br>");
        out.print(
"<a href='http://localhost/mail/index.asp'>查看信件</a>");
        out.flush();
        out.close();
    }


}

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值