java jmail_jmail的使用
邮件服务器配置文件:
##协议
mail.transport.protocol=smtp
##邮件服务器地址
mail.smtp.host=mail.126.com
##邮件服务器端口
mail.smtp.port=25
##SMTP服务用户认证
mail.smtp.auth=true
第一个类:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import javax.mail.Session;
public class SessionFactory {
private SmtpAuth sa = new SmtpAuth("service", "ilove17k");
private Session session = null;
private Properties props = new Properties();
public Session getSession(String propertyFilePath) {
try {
props.load(new FileInputStream(new File(propertyFilePath)));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
session = Session.getInstance(props,sa);
return session;
}
}
第二个类:
import java.io.UnsupportedEncodingException;
import java.util.Date;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
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.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
public class MailUtil {
/**
* 是否有附件
*/
private boolean haveAttachment = false;
/**
* 邮件权限验证
*/
private SmtpAuth auth = null;
/**
* 从哪里发送
*/
private InternetAddress from = null;
/**
* 发给谁
*/
private String mailTo = null;
/**
* 邮件标题
*/
private String title = null;
/**
* 邮件内容
*/
private String body = null;
/**
* 邮件类型
*/
private String content_type = null;
/**
* 会话对象
*/
private Session session = null;
/**
* 邮件对象
*/
private MimeMessage msg = null;
/**
* 正文部分
*/
private MimeMultipart content = null;
/**
* 正文部分
*/
private MimeBodyPart content_part = null;
/**
* 邮件发送对象
*/
private Transport transport = null;
/**
* 属性文件的路径
*
* @param propertyFilePath
*/
public MailUtil(String propertyFilePath) {
SessionFactory sf=new SessionFactory();
session = sf.getSession(propertyFilePath);
msg = new MimeMessage(session);
try {
from = new InternetAddress("[email]service@17k.com[/email]");
} catch (AddressException e) {
e.printStackTrace();
}
content = new MimeMultipart();
content_part = new MimeBodyPart();
content_type = "text/html;charset=gb2312";
}
public boolean send() {
// 设置邮件主题
try {
msg.setSubject(title);
// 设置发信日期
msg.setSentDate(new Date());
// 设置发信人
msg.setFrom(from);
// 设置主收件人
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(
mailTo));
// 设置抄送收件人
// msg.addRecipient(Message.RecipientType.CC, new InternetAddress(
// ""));
// 设置暗抄送人
// msg.addRecipient(Message.RecipientType.BCC, new InternetAddress(
// "[email]huql@17k.com[/email]"));
content_part.setText(body);
content_part.setHeader("Content-Type", content_type);
content.addBodyPart(content_part);
msg.setContent(content);
// 保存修改
msg.saveChanges();
// 创建发送对象
Transport trans = session.getTransport();
// 发送
trans.send(msg);
return true;
} catch (MessagingException e) {
e.printStackTrace();
return false;
}
}
/**
* 添加附件的方法
*
* @throws MessagingException
*/
public void addAttachMent() throws MessagingException {
// 添加附件
String filename = "D:\\Downloads\\super_star.swf"; // 用于存储文件名称与存放路径
if (filename != null || filename.length() > 0) {
DataSource fds = new FileDataSource(filename); // 创建文件流对象
MimeBodyPart p_w_upload_part = new MimeBodyPart();
p_w_upload_part.setDataHandler(new DataHandler(fds));
try {
p_w_upload_part.setFileName(MimeUtility.encodeText(fds
.getName()));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
// 添加二进制编码至邮件体中
content.addBodyPart(p_w_upload_part);
}
}
public InternetAddress getFrom() {
return from;
}
public void setFrom(InternetAddress from) {
this.from = from;
}
public String getMailTo() {
return mailTo;
}
public void setMailTo(String mailTo) {
this.mailTo = mailTo;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
}
测试:
public static void main(String args){
MailUtil mail = new MailUtil(propertyFile);
mail.setTitle(Utils.toGB2312(title));
mail.setBody(headContent.toString()+bookContent.toString());
mail.setMailTo(email);
}
java jmail_jmail的使用相关推荐
- springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据
SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...
- Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几
Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...
- 在k8s中使用gradle构建java web项目镜像Dockerfile
在k8s中使用gradle构建java web项目镜像Dockerfile FROM gradle:6-jdk8 AS build COPY --chown=gradle:gradle . /home ...
- Java | kotlin 手动注入bean,解决lateinit property loginService has not been initialized异常
kotlin.UninitializedPropertyAccessException: lateinit property loginService has not been initialized ...
- SpringBoot项目使用nacos,kotlin使用nacos,java项目使用nacos,gradle项目使用nacos,maven项目使用nacos
SpringBoot项目使用nacos kotlin demo见Gitte 一.引入依赖 提示:这里推荐使用2.2.3版本,springboot与nacos的依赖需要版本相同,否则会报错. maven ...
- OpenAPI使用(swagger3),Kotlin使用swagger3,Java使用swagger3,gradle、Maven使用swagger3
OpenAPI使用(swagger3) demo见Gitte 一.背景及名词解释 OpenAPI是规范的正式名称.规范的开发工作于2015年启动,当时SmartBear(负责Swagger工具开发的公 ...
- Gradle错误提示:Java home supplied via ‘xxx.xxx.xxx‘ is invalid
Gradle错误提示:Java home supplied via 'org.gradle.java.home' is invalid 描述:在使用idea采用gradle进行依赖的管理功能,当想切换 ...
- 查看Hotspot源码,查看java各个版本源码的网站,如何查看jdk源码
java开发必知必会之看源码,而看源码的第一步则是找到源码
- java基本类型转换,随记
java基本类型转换: double double 转 long double random = Math.round(Math.random()*10000); long l = new Doubl ...
最新文章
- OceanBase技术直播间开播啦!蚂蚁金服技术专家手把手教你搭建OB数据库~
- virtaulbox视图模式常用切换
- win10下gnuplot的安装和使用
- 网络营销推广解答网站排名上下摇摆不定怎么办?
- 采用 opencv surf 算子进行特征匹配
- 【Android】 Android中ListView使用详解
- 接口映射的实现及原理
- iOS8+ UITableView自动计算cell高度并缓存
- Hive:hive is not allowed to impersonate anonymous
- js扩展滚动窗口小插件实现文字左右上下滚动效果实例
- Linux无网络升级gcc,Linux离线(手动)升级GCC
- 华为户外模式怎么设置_华为FreeLace Pro降噪器效果怎么样?降噪开启和设置教程!...
- jumpserver开源堡垒机部署安装
- Java 故障安全异常处理
- C语言实现走迷宫小游戏
- python有没有网页版的pyqt_Python PyQT Web浏览器书签
- Debian11.5和Ubuntu22.04安装fcitx5中文输入法(五笔拼音)
- 布尔教育mysql优化_布尔教育-资源
- 基于ISCSI共享存储的KVM高可用群集配置
- Java8新特性——Stream API的简单应用
热门文章
- 多线程面试题_100多线程和Java并发面试问答–最终清单(PDF下载)
- python让用户输入一个列表_Python:如何将用户输入添加到列表中?
- b转换成mb php_攻防世界之WEB篇,php反序列化漏洞,网络安全入门篇
- android怎么写本地图片,Android 开发图片保存在本地
- 皮一皮:直男只想说一句,表白?是表特别白吗?
- Spring 官方发起Spring Authorization Server 项目
- JDK/Java 14 正式发布!然而我还在用 Java 8...
- crm系统是什么很棒ec实力_CRM系统都有哪些功能?CRM管理系统的主要用途又是什么?...
- android 混淆打包教程,Android studio 混淆打包
- 软工文档”注意注意“事项