JavaMail(2)-------SendHtmlMail

来源:互联网 发布:照片文件恢复软件 编辑:程序博客网 时间:2024/06/01 08:03
  1. package test;
  2. import javax.mail.*;
  3. import javax.mail.internet.*;
  4. import java.util.*;
  5. public class SendHtmlMail {
  6.     String SMTPHost=""//SMTP服务器
  7.     String user=""//登录SMTP服务器的帐号
  8.     String password=""//登录SMTP服务器的密码
  9.      
  10.     String from =""//发件人邮箱
  11.     String to =""//收件人邮箱
  12.     String subject =""//邮件标题
  13.     String content =""//邮件内容
  14.      
  15.     //无参数构造方法
  16.     public SendHtmlMail() {}
  17.      
  18.     public String getContent() {
  19.         return content;
  20.     }
  21.     public void setContent(String content) {
  22.         try{            
  23.             //解决内容的中文问题
  24.             content = new String(content.getBytes("ISO8859-1"),"gb2312");
  25.         }catch(Exception ex){
  26.             ex.printStackTrace();
  27.         }
  28.         this.content = content;
  29.     }
  30.     public String getFrom() {
  31.         return from;
  32.     }
  33.     public void setFrom(String from) {
  34.         this.from = from;
  35.     }
  36.     public String getPassword() {
  37.         return password;
  38.     }
  39.     public void setPassword(String password) {
  40.         this.password = password;
  41.     }
  42.     public String getSMTPHost() {
  43.         return SMTPHost;
  44.     }
  45.     public void setSMTPHost(String host) {
  46.         SMTPHost = host;
  47.     }
  48.     public String getSubject() {
  49.         return subject;
  50.     }
  51.     public void setSubject(String subject) {
  52.         try{            
  53.             //解决标题的中文问题
  54.             subject = new String(subject.getBytes("ISO8859-1"),"gb2312");
  55.         }catch(Exception ex){
  56.             ex.printStackTrace();
  57.         }       
  58.         this.subject = subject;
  59.     }
  60.     public String getTo() {
  61.         return to;
  62.     }
  63.     public void setTo(String to) {
  64.         this.to = to;
  65.     }
  66.     public String getUser() {
  67.         return user;
  68.     }
  69.     public void setUser(String user) {
  70.         this.user = user;
  71.     }    
  72.     //发送邮件
  73.     public boolean send(){
  74.         //创建一个属性对象
  75.         Properties props = new Properties();
  76.         //指定SMTP服务器
  77.         props.put("mail.smtp.host", SMTPHost);
  78.         //指定是否需要SMTP验证      
  79.         props.put("mail.smtp.auth""true");
  80.         try{
  81.             //创建一个授权验证对象
  82.             SmtpAuth auth = new SmtpAuth();
  83.             auth.setAccount(user,password);
  84.             
  85.             //创建一个Session对象
  86.             Session mailSession = Session.getDefaultInstance(props,auth);
  87.             mailSession.setDebug(true);
  88.             
  89.             //创建一个MimeMessage 对象
  90.             MimeMessage message=new MimeMessage(mailSession);
  91.             //指定发件人邮箱
  92.             message.setFrom(new InternetAddress(from));
  93.             //指定收件人邮箱
  94.             message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
  95.             //指定邮件主题
  96.             message.setSubject(subject);
  97.             //指定邮件内容、ContentType及编码方式
  98.             message.setContent(content,"text/html;charset=gb2312");
  99.             //指定邮件发送日期
  100.             message.setSentDate(new Date());
  101.             //指定邮件优先级 1:紧急 3:普通 5:缓慢
  102.             message.setHeader("X-Priority","1");
  103.             message.saveChanges();
  104.             
  105.             //创建一个Transport对象
  106.             Transport transport = mailSession.getTransport("smtp");
  107.             //连接SMTP服务器
  108.             transport.connect(SMTPHost, user, password);
  109.             //发送邮件
  110.             transport.sendMessage(message, message.getAllRecipients());
  111.             transport.close();
  112.             return true;
  113.         }catch(Exception ex){
  114.             ex.printStackTrace();
  115.             return false;
  116.         }
  117.     }
  118.     
  119.     //定义一个SMTP授权验证类
  120.     static class SmtpAuth extends Authenticator{
  121.         String user,password;
  122.         //设置帐号信息
  123.         void setAccount(String user,String password){
  124.             this.user = user;
  125.             this.password = password;
  126.         }
  127.         //取得PasswordAuthentication对象
  128.         protected PasswordAuthentication getPasswordAuthentication(){
  129.             return new PasswordAuthentication(user,password);
  130.         }
  131.     }
  132.     
  133. }

普通调用页面,

  1. <html>
  2.   <head>
  3.     <title>发送HTML型邮件</title>
  4.     <meta http-equiv="content-type" content="text/html; charset=gb2312">
  5.   </head>
  6.   
  7.   <body>
  8.     <h2>发送HTML型邮件</h2>
  9.     <hr>
  10.     <form name="form1" method="post" action="sendMail2.jsp">
  11.         SMTP服务器:<input type="text" id="SMTPHost" name="SMTPHost"><br>
  12.         登录帐号:<input type="text" id="user" name="user"><br>
  13.         登录密码:<input type="password" id="password" name="password"><br>
  14.         <br>
  15.         发件人邮箱:<input type="text" id="from" name="from"><br>
  16.         收件人邮箱:<input type="text" id="to" name="to"><br>
  17.         邮件标题:<input type="text" id="subject" name="subject"><br>
  18.         邮件内容HTML代码:<textarea id="content" name="content" rows="5" cols="40"></textarea><br>
  19.         <br>
  20.         <input type="submit" name="submit" value="发送"> 
  21.         <input type="reset" name="reset" value="重填">        
  22.     </form>    
  23.   </body>
  24. </html>

JSP调用页面,,

  1. <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
  2. <%@ page import="test.SendHtmlMail"%>
  3. <jsp:useBean id="mySend" class="test.SendHtmlMail"></jsp:useBean>
  4. <jsp:setProperty name="mySend" property="*"/>
  5. <%
  6.     //注意这里我们通过JavaBean的自省机制完成了对其属性的赋值
  7.         
  8.     boolean status = mySend.send();
  9.     if (status){
  10.         out.println("恭喜您,邮件发送成功!");
  11.     }else{
  12.         out.println("对不起,邮件发送失败!");
  13.     }
  14. %>
原创粉丝点击