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 Cloud Hystrix原理与注意事项小结

《SpringCloudHystrix原理与注意事项小结》本文介绍了Hystrix的基本概念、工作原理以及其在实际开发中的应用方式,通过对Hystrix的深入学习,开发者可以在分布式系统中实现精细... 目录一、Spring Cloud Hystrix概述和设计目标(一)Spring Cloud Hystr

Qt实现发送HTTP请求的示例详解

《Qt实现发送HTTP请求的示例详解》这篇文章主要为大家详细介绍了如何通过Qt实现发送HTTP请求,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、添加network模块2、包含改头文件3、创建网络访问管理器4、创建接口5、创建网络请求对象6、创建一个回复对

Keepalived+Nginx双机配置小结

《Keepalived+Nginx双机配置小结》本文主要介绍了Keepalived+Nginx双机配置小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1.1 软硬件要求1.2 部署前服务器配置调优1.3 Nginx+Keepalived部署1.3

Spring Boot整合消息队列RabbitMQ的实现示例

《SpringBoot整合消息队列RabbitMQ的实现示例》本文主要介绍了SpringBoot整合消息队列RabbitMQ的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录RabbitMQ 简介与安装1. RabbitMQ 简介2. RabbitMQ 安装Spring

Apache伪静态(Rewrite).htaccess文件详解与配置技巧

《Apache伪静态(Rewrite).htaccess文件详解与配置技巧》Apache伪静态(Rewrite).htaccess是一个纯文本文件,它里面存放着Apache服务器配置相关的指令,主要的... 一、.htAccess的基本作用.htaccess是一个纯文本文件,它里面存放着Apache服务器

springMVC返回Http响应的实现

《springMVC返回Http响应的实现》本文主要介绍了在SpringBoot中使用@Controller、@ResponseBody和@RestController注解进行HTTP响应返回的方法,... 目录一、返回页面二、@Controller和@ResponseBody与RestController

nginx配置多域名共用服务器80端口

《nginx配置多域名共用服务器80端口》本文主要介绍了配置Nginx.conf文件,使得同一台服务器上的服务程序能够根据域名分发到相应的端口进行处理,从而实现用户通过abc.com或xyz.com直... 多个域名,比如两个域名,这两个域名其实共用一台服务器(意味着域名解析到同一个IP),一个域名为abc

JAVA集成本地部署的DeepSeek的图文教程

《JAVA集成本地部署的DeepSeek的图文教程》本文主要介绍了JAVA集成本地部署的DeepSeek的图文教程,包含配置环境变量及下载DeepSeek-R1模型并启动,具有一定的参考价值,感兴趣的... 目录一、下载部署DeepSeek1.下载ollama2.下载DeepSeek-R1模型并启动 二、J

nginx生成自签名SSL证书配置HTTPS的实现

《nginx生成自签名SSL证书配置HTTPS的实现》本文主要介绍在Nginx中生成自签名SSL证书并配置HTTPS,包括安装Nginx、创建证书、配置证书以及测试访问,具有一定的参考价值,感兴趣的可... 目录一、安装nginx二、创建证书三、配置证书并验证四、测试一、安装nginxnginx必须有"-

springboot rocketmq配置生产者和消息者的步骤

《springbootrocketmq配置生产者和消息者的步骤》本文介绍了如何在SpringBoot中集成RocketMQ,包括添加依赖、配置application.yml、创建生产者和消费者,并展... 目录1. 添加依赖2. 配置application.yml3. 创建生产者4. 创建消费者5. 使用在