使用java底层实现邮件的发送(含测试,源码)

     直接上代码:3个类,两个主要的类,一个测试类:

   主类(Mail):

 /**  
* @Title: Mail.java
* @Package org.service.impl
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com  
* @date 2017-5-30 下午10:20:35
* @version V1.0  
*/
package org.service.impl;import java.util.Date;
import java.util.Properties;import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;/**   *    * 项目名称:spring_Schop8   * 类名称:Mail   * 类描述:   不用spring实现邮件发送* 创建人:Mu Xiongxiong  * 创建时间:2017-5-30 下午10:20:35   * 修改人:Mu Xiongxiong   * 修改时间:2017-5-30 下午10:20:35   * 修改备注:   * @version    *    */
public class Mail {private String mailServer,from ,to , mailSubject,mailContent,username,password;public Mail(String mailServer, String from, String to, String mailSubject,String mailContent, String username, String password) {this.mailServer = mailServer;this.from = from;this.to = to;this.mailSubject = mailSubject;this.mailContent = mailContent;this.username = username;this.password = password;}public Mail() {username = "tina";password = "123"; mailServer = "mail.com";from  = "tina@mail.com";to  = "jerry@mail.com";mailSubject = "问好";mailContent = "好久没见,最近可好!";}public void send(){//设置服务器Properties prop = System.getProperties();prop.put("mail.smtp.host", mailServer);prop.put("mail.smtp.auth", "true");//产生Session服务EmailAuthenticator mailauth = new EmailAuthenticator(username, password);Session mailSession = Session.getInstance(prop,(Authenticator)mailauth);//封装message对象Message message = new MimeMessage(mailSession);try {message.setFrom(new InternetAddress(from));    //设置发送人message.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); //设置主题message.setSubject(mailSubject);                                      //设置标题message.setContent(mailContent,"text/html;charset=utf-8");            //设置内容message.setSentDate(new Date());                                      //设置日期//和粗昂就爱你Transport实例Transport tran = mailSession.getTransport("smtp");tran.send(message, message.getAllRecipients());tran.close();} catch (AddressException e) {// TODO 异常执行块!e.printStackTrace();} catch (MessagingException e) {// TODO 异常执行块!e.printStackTrace();}    //}}

第二个主类(EmailAuthenticator):

package org.service.impl;import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;import org.hibernate.validator.constraints.Email;public class EmailAuthenticator extends Authenticator {private String username=null;private String userpass = null;public EmailAuthenticator(String username, String userpass) {super();this.username = username;this.userpass = userpass;}public  PasswordAuthentication getPasswordAuthentication(){return new PasswordAuthentication(username, userpass);}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getUserpass() {return userpass;}public void setUserpass(String userpass) {this.userpass = userpass;}}

测试类:

/*** * @Title: testMail1* @Description: 该方法的主要作用:java实现底层的邮件发送* @param   设定文件  * @return  返回类型:void   * @throws*/@Testpublic void testMail1(){Mail mail = new Mail();mail.send();System.out.println("发送成功");}

源码上完了,再看一下运行的结果吧:


可以看到发送人,发送时间,还有发送内容!已经发送成功!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java多线程:线程状态

转载自 Java多线程:线程状态 一. 线程状态类型 1. 新建状态(New):新创建了一个线程对象。 2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行…

Win10怎么关闭开机启动项

Win10怎么关闭开机启动项 我们可以首先打开电脑的运行对话框,按下键盘的WINR组合键,打开运行。 然后这里我们在运行对话框中输入命令msconfig确定,打开系统配置程序。 系统配置窗口,启动里面点击这里的任务管理器打开。 这时…

TypeScript 2.1发布

TypeScript是微软开发的一个JavaScript的超集,提供了最新的JavaScript特性以及可选的静态类型。近日,TypeScript 2.1发布。该版本提供了功能更为强大的类型检查器,并且让开发人员可以编写出更简洁的代码。以下是该版本带来的主要新特性&#…

使用spring实现邮件的发送(含测试,源码,注释)

此篇主要讲的是使用spring配置实现邮件发送,与之前的底层实现简便了不少,只需要几个配置就可以了,那么请往下看: 先写个接口 /** * Title: IMailserdService.java * Package org.service * Description: TODO该方法的主要作用&a…

你当前无权访问该文件夹 解决你当前无权访问该文件夹拒绝你访问该文件夹

我 这样就完成了 http://www.xitonghe.com/jiaocheng/windows7-5642.html https://jingyan.baidu.com/article/4b52d702aa01b3fc5c774b1b.html Win10正式版提示你当前无权访问该文件夹怎么办 https://jingyan.baidu.com/article/4b52d702aa01b3fc5c774b1b.html 1407345人看了…

SpringBoot+Vue博客系统---后端接口开发

Java后端接口开发 从零开始搭建一个项目骨架,最好选择合适,熟悉的技术,并且在未来易拓展,适合微服务化体系等。所以一般以Springboot作为我们的框架基础,这是离不开的了。 然后数据层,我们常用的是Mybati…

图说世界编程语言排行

TIOBE编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网上有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜索引擎(诸如Google、MSN、Yahoo!、Wikipedia、YouTube以及Baidu等)进行计算…

中国有超级计算机的大学,计算机专业排名看超算实力,ASC竞赛五大高校排名,中山大学第一...

ASC竞赛五大高校计算机专业的实力主要体现在算法与编程的逻辑运算上,因此计算机专业必须掌握大量基础数学知识,甚至很多是离散数学、模糊数学等人工智能逻辑数学,简单的程序软件应用和O2O程序实现其实都不是计算机专业实力的体现,…

IntelliJ IDEA设置JDK版本

IntelliJ IDEA设置JDK版本 临渊行 2019-06-13 13:59:13 46888 收藏 30 分类专栏: 这里有个坑 版权 一、背景 即使我电脑安装的JDK版本是8,然而在idea运行中常常提示xxjdk1.5已过时之类的,why?明明是我装的JDK8啊 二、解决 鼠标点击f…

从抵触到力推,.Net Core的成功让微软正视开源

微软在两年前做了一件当时非常令人惊讶的事情:将 .Net Core 开源。在此之前,微软曾表示开源是对软件经济的威胁。或许是为了更好的销售工具和云服务,亦或许是为了吸引更多的开发者到其平台,微软开始开源。到目前为止,这…

线程池的原理及实现

转载自 线程池的原理及实现 1、线程池简介: 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为:T1 创建线…

计算机考试行高怎么设置,Excel隔行调整行高的四种有效方法

领导要求把一份Excel表格的偶数行行高调整一下。这份表格可是有上百行的,逐一调整行高显然是不科学的。几经周折,费了我N多的口舌四处讨教,这个任务还是顺利地完成了。一、直接定位法先在表格的最后增加一个辅助列。在该列的第一行的单元格中…

亲身体验Intellij Idea从卡顿到顺畅

亲身体验Intellij Idea从卡顿到顺畅 idea power save mode 指尖飘落的程序 2018-01-16 14:12:12 11991 收藏 1 分类专栏: 工具 版权 power save mode 开启后代码不提示, 省电模式(经典模式:适用低配版电脑) htt…

在收购 Sun 的六年后,Oracle 终于瞄准了 Java 的非付费用户

你还在认为 Java 是免费的吗?再想想!(2017年你会欠我们很多钱) 在收购了 Sun 公司的六年后,Oracle 正在大规模的加大对违反其许可证的 Java 客户的审查力度。 越来越多的 Oracle 客户和合作伙伴被拉里埃里森的团队约谈…

mysql卸载再安装作死级尝试(测试前记得备份数据库)

安装之前一定要将自己的mysql清理干净 1、下载后得到zip压缩包. 2、解压到自己想要安装到的目录,本人解压到的是D:\Environment\mysql-5.7.19 3、添加环境变量:我的电脑->属性->高级->环境变量 选择PATH,在其后面添加: 你的mysql 安装文件下…

按逆向思维定义软件测试,软件测试基础相关概念

测试基础知识是2008-9-20笔记整理,大部份内容来自软件评测师教程,年限已久,有些笔记已丢失。一,理清测试相关概念1,质量 : 实体特性的总和,满足明确或隐含要求的能力2,软件质量 &…

‘entityManagerFactory‘ that could not be found

springboot结合spring data jpa出现a bean named entityManagerFactory that could not be found 羿 2018-10-28 23:46:30 9064 收藏 1 Consider defining a bean named ‘entityManagerFactory’ in your configuration出现的解决方法 原文:https://blog.csdn.…

分享我的第一个asp.net core开发过程

.net core 这个东西感觉还是很不错的,学习了一下,并且做了一个微服务(IP地址查询服务) http://vju.cc/ip/ipquery 看上他的跨平台功能,所以就研究一下,中间有不少坑,有很多第三方类库还不支持.net core,就连…

Java并发编程:深入剖析ThreadLocal

转载自 Java并发编程:深入剖析ThreadLocal 一.对ThreadLocal的理解 ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本&…

【spring boot】启动类启动 错误: 找不到或无法加载主类 com.codingapi.tm.TxManagerApplication 的解决方案

【spring boot】启动类启动 错误: 找不到或无法加载主类 com.codingapi.tm.TxManagerApplication 的解决方案 导入的一个外部的spring boot项目,运行启动类,出现错误:找不到或无法加载主类 com.codingapi.tm.TxManagerApplication 解决方案…