java发送邮件jar包的配置及源码(重新整理)

2023-11-07 09:38

本文主要是介绍java发送邮件jar包的配置及源码(重新整理),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、jar包配置

1.删除Java EE 5 Libraries/javaee.jar下的mail包

2.导入j2eejar包

详情:http://blog.csdn.net/sdd379733766/article/details/8058118

j2ee.jar包下载地址:

http://download.csdn.net/detail/sdd379733766/4633961

 

二、源码

1.MailSenderInfo类

package com.bookstore.tool;import java.util.Properties;public class MailSenderInfo {// 发送邮件的服务器的IP和端口    private String mailServerHost;    private String mailServerPort = "25";    // 邮件发送者的地址    private String fromAddress;    // 邮件接收者的地址    private String toAddress;    // 登陆邮件发送服务器的用户名和密码    private String userName;    private String password;    // 是否需要身份验证    private boolean validate = false;    // 邮件主题    private String subject;    // 邮件的文本内容    private String content;    // 邮件附件的文件名    private String[] attachFileNames;      /** *//**   * 获得邮件会话属性   */    public Properties getProperties(){    Properties p = new Properties();    p.put("mail.smtp.host", this.mailServerHost);    p.put("mail.smtp.port", this.mailServerPort);    p.put("mail.smtp.auth", validate ? "true" : "false");    return p;    }    public String getMailServerHost() {    return mailServerHost;    }    public void setMailServerHost(String mailServerHost) {    this.mailServerHost = mailServerHost;    }   public String getMailServerPort() {    return mailServerPort;    }   public void setMailServerPort(String mailServerPort) {    this.mailServerPort = mailServerPort;    }   public boolean isValidate() {    return validate;    }   public void setValidate(boolean validate) {    this.validate = validate;    }   public String[] getAttachFileNames() {    return attachFileNames;    }   public void setAttachFileNames(String[] fileNames) {    this.attachFileNames = fileNames;    }   public String getFromAddress() {    return fromAddress;    }    public void setFromAddress(String fromAddress) {    this.fromAddress = fromAddress;    }   public String getPassword() {    return password;    }   public void setPassword(String password) {    this.password = password;    }   public String getToAddress() {    return toAddress;    }    public void setToAddress(String toAddress) {    this.toAddress = toAddress;    }    public String getUserName() {    return userName;    }   public void setUserName(String userName) {    this.userName = userName;    }   public String getSubject() {    return subject;    }   public void setSubject(String subject) {    this.subject = subject;    }   public String getContent() {    return content;    }   public void setContent(String textContent) {    this.content = textContent;    }    
}   


 

2.SimpleMailSender类

package com.bookstore.tool;import java.util.Date;
import java.util.Properties;import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
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;/**   
* 简单邮件(不带附件的邮件)发送器   	
*/    
public class SimpleMailSender  {    
/** *//**   * 以文本格式发送邮件   * @param mailInfo 待发送的邮件的信息   */    public boolean sendTextMail(MailSenderInfo mailInfo) {    // 判断是否需要身份认证    MyAuthenticator authenticator = null;    Properties pro = mailInfo.getProperties();   if (mailInfo.isValidate()) {    // 如果需要身份认证,则创建一个密码验证器    authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());    }   // 根据邮件会话属性和密码验证器构造一个发送邮件的session    Session sendMailSession = Session.getDefaultInstance(pro,authenticator);    try {    // 根据session创建一个邮件消息    Message mailMessage = new MimeMessage(sendMailSession);    // 创建邮件发送者地址    Address from = new InternetAddress(mailInfo.getFromAddress());    // 设置邮件消息的发送者    mailMessage.setFrom(from);    // 创建邮件的接收者地址,并设置到邮件消息中    Address to = new InternetAddress(mailInfo.getToAddress());    mailMessage.setRecipient(Message.RecipientType.TO,to);    // 设置邮件消息的主题    mailMessage.setSubject(mailInfo.getSubject());    // 设置邮件消息发送的时间    mailMessage.setSentDate(new Date());    // 设置邮件消息的主要内容    String mailContent = mailInfo.getContent();    mailMessage.setText(mailContent);    // 发送邮件    Transport.send(mailMessage);   return true;    } catch (MessagingException ex) {    ex.printStackTrace();    }    return false;    }    /** *//**   * 以HTML格式发送邮件   * @param mailInfo 待发送的邮件信息   */    public static boolean sendHtmlMail(MailSenderInfo mailInfo){    // 判断是否需要身份认证    MyAuthenticator authenticator = null;   Properties pro = mailInfo.getProperties();   //如果需要身份认证,则创建一个密码验证器     if (mailInfo.isValidate()) {    authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());   }    // 根据邮件会话属性和密码验证器构造一个发送邮件的session    Session sendMailSession = Session.getDefaultInstance(pro,authenticator);    try {    // 根据session创建一个邮件消息    Message mailMessage = new MimeMessage(sendMailSession);    // 创建邮件发送者地址    Address from = new InternetAddress(mailInfo.getFromAddress());    // 设置邮件消息的发送者    mailMessage.setFrom(from);    // 创建邮件的接收者地址,并设置到邮件消息中    Address to = new InternetAddress(mailInfo.getToAddress());    // Message.RecipientType.TO属性表示接收者的类型为TO    mailMessage.setRecipient(Message.RecipientType.TO,to);    // 设置邮件消息的主题    mailMessage.setSubject(mailInfo.getSubject());    // 设置邮件消息发送的时间    mailMessage.setSentDate(new Date());    // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象    Multipart mainPart = new MimeMultipart();    // 创建一个包含HTML内容的MimeBodyPart    BodyPart html = new MimeBodyPart();    // 设置HTML内容    html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");    mainPart.addBodyPart(html);    // 将MiniMultipart对象设置为邮件内容    mailMessage.setContent(mainPart);    // 发送邮件    Transport.send(mailMessage);    return true;    } catch (MessagingException ex) {    ex.printStackTrace();    }    return false;    }    
}   


3.MyAuthenticator类

package com.bookstore.tool;import javax.mail.*;  
public class MyAuthenticator extends Authenticator{   String userName=null;   String password=null;   public MyAuthenticator(){   }   public MyAuthenticator(String username, String password) {    this.userName = username;    this.password = password;    }    protected PasswordAuthentication getPasswordAuthentication(){   return new PasswordAuthentication(userName, password);   }   
}   


 

4.测试

 

public static void main(String[] args){MailSenderInfo mailInfo = new MailSenderInfo();    mailInfo.setMailServerHost("smtp.qq.com");  //指定的smtp服务器。我用的是qq,你当然可以使用163或者新浪等其他邮箱mailInfo.setMailServerPort("25");    //端口mailInfo.setValidate(true);    mailInfo.setUserName("xxxxxx@qq.com");    // 邮件发送人的邮件地址mailInfo.setPassword("xxxxx");//邮件发送人的邮箱密码    mailInfo.setFromAddress("xxxxxxx@qq.com");    //发件人的邮件地址mailInfo.setToAddress("yyyyyyyyy@qq.com");    //收件人的邮件地址mailInfo.setSubject("设置邮箱标题 ");   //邮箱标题mailInfo.setContent("<font style='BACKGROUND-COLOR: #ccffcc' color='#ff0000' size='5'>邮件html格式测试<a href='http://www.baidu.com'>连接测试</a>测试图<em>片</em></font></br><img src='http://www.google.cn/intl/zh-CN/images/logo_cn.gif'></img>");      //这个类主要来发送邮件   SimpleMailSender sms = new SimpleMailSender();   //sms.sendTextMail(mailInfo);//发送文体格式    sms.sendHtmlMail(mailInfo);//发送html格式      
}

*****************************************************************************************************************************************

PS:要实现发邮件的功能,呢么你发件人的这个邮箱必须是已经开启了smtp服务(一般在各个邮箱的设置里有这个选项)

这篇关于java发送邮件jar包的配置及源码(重新整理)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/362758

相关文章

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

Java中Integer128陷阱

《Java中Integer128陷阱》本文主要介绍了Java中Integer与int的区别及装箱拆箱机制,重点指出-128至127范围内的Integer值会复用缓存对象,导致==比较结果为true,下... 目录一、Integer和int的联系1.1 Integer和int的区别1.2 Integer和in

SpringSecurity整合redission序列化问题小结(最新整理)

《SpringSecurity整合redission序列化问题小结(最新整理)》文章详解SpringSecurity整合Redisson时的序列化问题,指出需排除官方Jackson依赖,通过自定义反序... 目录1. 前言2. Redission配置2.1 RedissonProperties2.2 Red

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

JSONArray在Java中的应用操作实例

《JSONArray在Java中的应用操作实例》JSONArray是org.json库用于处理JSON数组的类,可将Java对象(Map/List)转换为JSON格式,提供增删改查等操作,适用于前后端... 目录1. jsONArray定义与功能1.1 JSONArray概念阐释1.1.1 什么是JSONA

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads