使用java底层实现邮件的发送(含测试,源码)
2023-09-14 08:57:40 时间
直接上代码: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
*/
@Test
public void testMail1(){
Mail mail = new Mail();
mail.send();
System.out.println("发送成功");
}
源码上完了,再看一下运行的结果吧:
可以看到发送人,发送时间,还有发送内容!已经发送成功!
相关文章
- Java+MyEclipse+Tomcat (一)配置过程及jsp网站开发入门
- 【Java】java扩展机制SPI 实现
- java实现人脸识别源码【含测试效果图】——前台显示层(index.jsp)
- java实现人脸识别源码【含测试效果图】——DaoImpl层(BaseDaoUtilImpl)
- java实现人脸识别源码【含测试效果图】——Dao层(IUserDao)
- java实现人脸识别源码【含测试效果图】——Dao层(BaseDao)
- 使用java底层实现邮件的发送(含测试,源码)
- java面向对象高级分层实例_测试类(main方法所在的类)
- Java实现微生物增殖
- java实现第七届蓝桥杯交换瓶子
- Java实现第九届蓝桥杯阶乘位数
- java 11 标准Java异步HTTP客户端
- Java监控工具介绍,VisualVm ,JProfiler,Perfino,Yourkit,Perf4J,JProbe,Java微基准测试
- java调用百度地图API根据地理位置中文获取经纬度
- Atitit.跨语言异常转换机制 java c# php到js的异常转换
- Atitit. 衡量项目规模 ----包含的类的数量 .net java类库包含多少类 多少个api方法??
- paip.提升性能--多核编程中的java .net php c++最佳实践 v2.0 cah
- 基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - 内部框架及UI自动化测试框架思维导图
- java中数组遍历的三种方式
- 解决idea出现的java.lang.OutOfMemoryError: Java heap space的问题
- java 程序运行的基础知识【Java bytecode】
- 深入理解Java:注解(Annotation)自己定义注解入门
- java+ selenium自动化测试-元素定位大法之By id(详细教程)
- 【java】Java并发编程系列- volatile关键字(高并发中特实用哦)