JavaMail实现邮件发送的方法

 更新时间:2015年04月17日 09:25:35   作者:司青  
这篇文章主要介绍了JavaMail实现邮件发送的方法,实例分析了java实现邮件发送的相关技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了JavaMail实现邮件发送的方法。分享给大家供大家参考。具体如下:

下载 activation.jar 和 mail.jar
配置CLASSPATH,将上面两个jar包加入到CLASSPATH中。

JavaBean : "SendEmail.java"

package cls; 
import java.util.Date; 
import java.util.Properties; 
import javax.mail.*; 
import javax.mail.internet.*; 
public class SendEmail 
{ 
 String host; 
 String username; 
 String password; 
 String fromAddr; 
 String toAddr; 
 String subject; 
 String content; 
 public SendEmail() 
 { 
 // 变量初始化 
 host = "smtp.qq.com"; 
 username = ""; 
 password = ""; 
 fromAddr = "@"; 
 } 
 // 发送邮件 
 public boolean sendMail() 
 { 
 Properties prop; 
 Session session; 
 MimeMessage msg; 
 try 
 { 
  prop = new Properties(); // 存储连接参数 
  prop.put("mail.smtp.host",host); 
  prop.put("mail.smtp.auth","true"); 
  session = Session.getDefaultInstance(prop,null);
  // 获得一个邮件的Session 
  msg = new MimeMessage(session); // 邮件信息 
  // 检查邮件地址是否合法 
  if(fromAddr == null || fromAddr.equals("")) 
  { 
  throw new Exception("发件地址错误"); 
  } 
  if(toAddr == null || toAddr.equals("")) 
  { 
  throw new Exception("目标地址错误"); 
  } 
  //设置源地址 
  msg.setFrom(new InternetAddress(fromAddr)); 
  //设置目的地址 
  msg.setRecipient(Message.RecipientType.TO,new InternetAddress(toAddr)); 
  //设置主题 
  msg.setSubject(subject); 
  Multipart mp = new MimeMultipart(); //邮件内容 
  MimeBodyPart mbpContent = new MimeBodyPart(); 
  mbpContent.setContent(content,"text/html"); // 邮件格式 
  mp.addBodyPart(mbpContent); 
  msg.setContent(mp); 
  msg.setSentDate(new Date()); 
  // 发送邮件 
  Transport transport = session.getTransport("smtp"); 
  transport.connect((String)prop.get("mail.smtp.host"),username,password); 
  transport.sendMessage(msg,msg.getRecipients(MimeMessage.RecipientType.TO)); 
  transport.close(); 
  return true; 
 } 
 catch(Exception e) 
 { 
  System.out.println(e); 
  return false; 
 } 
 } 
 // getter and setter 
 public String getPassword() 
 { 
 return password; 
 } 
 public void setPassword(String password) 
 { 
 this.password = password; 
 } 
 public String getHost() 
 { 
 return host; 
 } 
 public void setHost(String host) 
 { 
 this.host = host; 
 } 
 public String getUsername() 
 { 
 return username; 
 } 
 public void setUsername(String username) 
 { 
 this.username = username; 
 } 
 public String getFromAddr() 
 { 
 return this.fromAddr; 
 } 
 public void setFromAddr(String addr) 
 { 
 fromAddr = addr; 
 } 
 public String getToAddr() 
 { 
 return this.toAddr; 
 } 
 public void setToAddr(String addr) 
 { 
 toAddr = addr; 
 } 
 public String getSubject() 
 { 
 return subject; 
 } 
 public void setSubject(String sub) 
 { 
 subject = sub; 
 } 
 public String getContent() 
 { 
 return content; 
 } 
 public void setContent(String content) 
 { 
 this.content = content; 
 } 
}

sendmail.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
 <head> 
 <title>Mail</title> 
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 </head> 
 <body> 
 <center> 
  <jsp:useBean id="email" class="cls.SendEmail" scope="page" /> 
  <jsp:setProperty name="email" property="toAddr" value="host" />
  <jsp:setProperty name="email" property="fromAddr" value="host" />
  <jsp:setProperty name="email" property="username" value="username" />
  <jsp:setProperty name="email" property="password" value="password" />
  <jsp:setProperty name="email" property="subject" value="mail test" />
  <jsp:setProperty name="email" property="content" value="hello world"/>
  <%=email.sendMail() %>
 </center> 
 </body> 
</html>

希望本文所述对大家的java程序设计有所帮助。

相关文章

  • Java Map.entry案例详解

    Java Map.entry案例详解

    这篇文章主要介绍了Java Map.entry案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Spring AOP之@Around,@AfterReturning使用、切不进去的解决方案

    Spring AOP之@Around,@AfterReturning使用、切不进去的解决方案

    这篇文章主要介绍了Spring AOP之@Around,@AfterReturning使用、切不进去的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Java 多线程的同步代码块详解

    Java 多线程的同步代码块详解

    这篇文章主要介绍了Java 多线程的同步代码块,使用synchronized关键字创建线程同步方法是实现线程同步的关键,需要的朋友可以参考下
    2021-10-10
  • JAVA中split函数的常见用法实例

    JAVA中split函数的常见用法实例

    Java中我们可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组,下面这篇文章主要给大家介绍了关于JAVA中split函数的常见用法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • spring cloud 使用Zuul 实现API网关服务问题

    spring cloud 使用Zuul 实现API网关服务问题

    这篇文章主要介绍了spring cloud 使用Zuul 实现API网关服务问题,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • Java中的Runnable,Callable,Future,FutureTask的比较

    Java中的Runnable,Callable,Future,FutureTask的比较

    这篇文章主要介绍了Java中的Runnable,Callable,Future,FutureTask的比较的相关资料,需要的朋友可以参考下
    2017-02-02
  • springboot @validated List校验失效问题

    springboot @validated List校验失效问题

    这篇文章主要介绍了springboot @validated List校验失效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 浅析SpringBoot统一返回结果的实现

    浅析SpringBoot统一返回结果的实现

    前后端开发过程中数据交互规范化是一件非常重要的事情,不仅可以减少前后端交互过程中出现的问题,也让代码逻辑更加具有条理,下面小编就和大家讲讲SpringBoot如何统一返回结果的吧
    2023-07-07
  • java实现ATM取款项目

    java实现ATM取款项目

    这篇文章主要为大家详细介绍了java实现ATM取款项目的实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Spring boot整合Mybatis实现级联一对多CRUD操作的完整步骤

    Spring boot整合Mybatis实现级联一对多CRUD操作的完整步骤

    这篇文章主要给大家介绍了关于Spring boot整合Mybatis实现级联一对多CRUD操作的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07

最新评论