JAVA Email

news2024/11/15 11:03:55

Email就是电子邮件。电子邮件的应用已经有几十年的历史了,我们熟悉的邮箱地址比如aaaa22222@163.com,邮件软件比如Outlook、网易闪电邮、Foxmail都是用来收发邮件的。当然,使用Java程序也可以收发电子邮件。

 

传统的邮件就是通过邮局投递,然后从一个邮局到另一个邮局,最终到达用户的邮箱。电子邮件的发送也是类似的,

java Email首先需要导一个包:javax.mail-1.6.2.jar

yan

可以自己创建一个工具类,便于每次的使用,预防每一次都需要重复很多东西!类似于这样:

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;

//工具类
public class JavaMailUtils {
	
	private JavaMailUtils() {
		
	}
	
	public static Session createSession() {
		//邮箱账号信息
		String userName = "19584XXX@qq.com";//邮件发送账号
		String password = "cyhajwlbkXXxxX";//账号授权密码
		
		//SMTP服务连接器连接信息
		Properties props = new Properties();
		props.put("mail.smtp.host","smtp.qq.com");//SMTP主机名
		props.put("mail.smtp.post","25");//主机端口号
		props.put("mail.smtp.auth","true");//是否需要用户认证
		props.put("mail.smtp.starttls.enable","true");//启用TLS加密
		
		Session session = Session.getInstance(props, new Authenticator() {
			@Override
			protected PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication(userName, password);
			}
		});
	   
		return session;
	}
	

}

提示:密码必须是授权密码。。。授权密码可以在邮件设置中找到并打开!

 

接下来演示一则最基本的文字邮件发送。

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;
import javax.mail.internet.MimeMessage.RecipientType;

public class Demo06 {
	public static void main(String[] args) {


			try {
				//1.创建Session会话
				Session session = JavaMailUtils.createSession();
				
				//创建邮箱对象
				MimeMessage message = new MimeMessage(session);
				message.setSubject("聘请函!");
				message.setText("恭喜您被猿究院录取,工资详谈,手机号:13347xxxxx`4");
				message.setFrom(new InternetAddress("1808xxx2494@163.com"));
				message.setRecipient(RecipientType.TO, new InternetAddress("2232266959@qq.com"));
				
				Transport.send(message);
				System.out.println("1");
			} catch (AddressException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (MessagingException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}

		

}

以及邮件加入附件照片的发送!!!


import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

import javax.activation.DataHandler;
import javax.mail.BodyPart;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Multipart;
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.util.ByteArrayDataSource;

import org.apache.xmlbeans.impl.store.Path;

public class Demo07 {
	public static void main(String[] args) {
		//1.创建Session会话
		try {
			Session session = JavaMailUtils.createSession();
			
			//2.创建MimeMessage邮件对象
			MimeMessage message = new MimeMessage(session);
			message.setFrom(new InternetAddress("1958411xxx@qq.com"));//发件人
			message.setRecipient(RecipientType.TO, new InternetAddress("7755xxxxx6@qq.com"));//收件人
			message.setRecipients(RecipientType.CC, new InternetAddress[] {new InternetAddress("7755xxxxx6@qq.com")});
			message.setSubject("测试邮件");

			//邮箱仅包含正文
			//message.setText("sssss");
			
			//邮件包含正文也包含附件
			//正文
			BodyPart textPart = new MimeBodyPart();
			//textPart.setContent("太阳<p>晒屁屁<p>了","text/html;harset=utf-8");
			StringBuilder contentText = new StringBuilder();
			contentText.append("<h3>触不可及<h3>");
			contentText.append("<p>程47与七个小矮人的故事<p>");
			contentText.append("<img scr=\"cid:cbkj\"/>");
			textPart.setContent(contentText.toString(),"text/html;charset=utf-8");
			
			
			
			
			//附件
			BodyPart imagePart = new MimeBodyPart();
			//filePart.setFileName("李云龙阁下");
			
			//上传附件
			imagePart.setDataHandler(
						new DataHandler(
								new ByteArrayDataSource(
										Files.readAllBytes(Paths.get("E:\\test\\test\\DESKTOP-ILBR8QI.jpg")),
										"application/octet-stream")));
			imagePart.setHeader("Content-ID","cbkj");//图片的内容id
			//将正文+附件组装成Multipart对象
			Multipart multipart = new MimeMultipart();
			multipart.addBodyPart(textPart);
			multipart.addBodyPart(imagePart);
			
			//将Multipart对象放入邮件
			message.setContent(multipart);
			
			
			//3.发送邮件
			Transport.send(message);
		} catch (AddressException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (MessagingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}

其中发送内容中可以包含超文本,但必须要在代码中说明文字中含有超文本,不然无法识别!

同时我们可以在控制台看到JavaMail打印的调试信息,在这里我就不演示了。。。

如果有收获,记得一键三连支持二锅头哦!! 

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

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

相关文章

目标检测+车道线识别+追踪+测距(代码+部署运行)

目标检测车道线识别追踪测距 本文主要讲述项目集成&#xff1a;从车道线识别、测距、到追踪&#xff0c;集各种流行模型于一体&#xff01; 不讲原理&#xff0c;直接上干货&#xff01; 把下文环境配置学会&#xff0c;受益终生&#xff01; 各大项目皆适用&#xff01; …

具有音调控制功能的25W混合式Hi—Fi放大器

现代电子技术应用中电子管的使用虽然已经较少&#xff0c;但由于电子管有晶体管不可替代的一些优越特性&#xff0c;所以在部分领域特别是音响电路中还受到人们的亲睐。这是一款由“靓”音电子管和音响集成电路联合组成的混合放大器。该放大器由电子管作前级&#xff0c;音响专…

7.8(wmi命令+ServiceName+CobaltStrike Loader)

优先级&#xff0c;进程ID&#xff0c;线程计数 优先级&#xff08;Priority&#xff09;是操作系统对进程或线程分配处理器资源的重要性排序。较高的优先级意味着进程或线程更有可能在竞争处理器资源时被调度执行。 进程ID&#xff08;Process ID&#xff09;是唯一标识系统中…

Python读取Excel文件并复制指定的数据行

本文介绍基于Python语言&#xff0c;读取Excel表格文件数据&#xff0c;并基于其中某一列数据的值&#xff0c;将这一数据处于指定范围的那一行加以复制&#xff0c;并将所得结果保存为新的Excel表格文件的方法。 首先&#xff0c;我们来明确一下本文的具体需求。现有一个Excel…

【Java】Netty中closeFuture添加监听事件示例

1. 需求 客户端向服务端发送信息&#xff0c;服务端将信息打印客户端接收键盘输入到信息循环向服务端发送信息客户端接收键盘输入‘q’时关闭 2.服务端代码 import io.netty.bootstrap.ServerBootstrap;在这里插入代码片 import io.netty.buffer.ByteBuf; import io.netty.c…

新开普智慧校园系统RCE漏洞复现(0day)

0x01 产品简介 新开普智慧校园体系基于业务、数据双中台理念&#xff0c;建立共享开放能力平台&#xff0c;实现能力开放和服务与数据的全生命周期治理&#xff1b;基于一云多端&#xff0c;混合云服务模式&#xff0c;覆盖管理、生活、教学、科研和社会化服务全场景&#xff0…

【网络】HTTPS协议原理

目录 “加密”相关概念 为什么要加密 常见加密方式 对称加密 非对称加密 HTTPS工作过程探究 方案1-只使用对称加密 方案2-只使用非对称加密 方案3-客户端和服务端双方都使用非对称加密 方案4-非对称加密 对称加密 上述方案问题分析 方案5-证书认证 非对称加密对…

代码随想录二刷day46 | 动态规划之139.单词拆分

day46 139.单词拆分1.确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp[i] 139.单词拆分 题目链接 解题思路&#xff1a;单词就是物品&#xff0c;字符串s就是背包&#xff0c;单词能否组成字符串s&#xff0c;就是问物品能不能把背包装满…

原来Linux里也能打《ACM》?

本文&#xff0c;我们来介绍一下Linux中的ACM时间&#xff0c;不过呢此ACM非彼acm&#xff0c;让我们一起来看看吧 前言 我们在写Makefile的时候&#xff0c;经常会遇到make: xxx is up to date.的问题&#xff0c;很多同学都不知道是什么原因&#xff0c;本文我们就从这一点说…

如何查看某个学者近些年发表的论文

Search more papy by the author 在谷歌学术上搜索&#xff0c;输入学者的名字&#xff0c;就会出来所有的期刊&#xff0c;文章题目、发表时间、相关作者等信息。 例如&#xff0c; 在下面的网址中&#xff0c;展示了学者发表的论文详情 https://scholar.google.com/citat…

C++常用库函数 6.进程控制函数

函数名&#xff1a;exit 函数原型&#xff1a;void exit(int status)&#xff1b; 参数&#xff1a;status 退出状态。 所需头文件&#xff1a;<cstdlib> 功能&#xff1a;终止进程。函数名&#xff1a;system 函数原型&#xff1a;int system(const char*command) …

103、基于STM32单片机智能两轮双轮自平衡小车 蓝牙手机APP控制系统设计(程序+原理图+PCB源文件+硬件芯片资料等)

单片机主芯片选择方案 方案一&#xff1a;AT89C51是美国ATMEL公司生产的低电压&#xff0c;高性能CMOS型8位单片机&#xff0c;器件采用ATMEL公司的高密度、非易失性存储技术生产&#xff0c;兼容标准MCS-51指令系统&#xff0c;片内置通用8位中央处理器(CPU)和Flash存储单元&a…

【网络安全带你练爬虫-100练】第10练:re的正则匹配、文件夹创建、图片下载

目录 一、目标1&#xff1a;正则匹配图片的URL 二、目标2&#xff1a;创建文件夹 三、目标3&#xff1a;保存图片到test文件夹中 四、网络安全小圈子 一、目标1&#xff1a;正则匹配图片的URL URL位置 我们可以找到img都在这个标签里面 请求方法GET 提取URL位置 需要掌握…

【算法 -- LeetCode】(12)整数转罗马数字

1、题目 罗马数字包含以下七种字符&#xff1a; I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M …

【源码】vue2+element+laravel8开发不良事件上报系统源码

系统概述&#xff1a; 医院不良事件报告系统为医院内质量控制、患者安全关注、医疗安全不良事件方面的精细化的管理提供了平台&#xff0c;是等级医院评审的必备内容&#xff0c;评审要求医院直报系统要与卫生部“医疗安全(不良)事件报告系统”建立网络对接。 不良事件报告系统…

微信小程序WebView嵌入别人网页的解决办法

写在前面&#xff0c;小程序必须是热认证的企业小程序&#xff0c;个人小程序不支持WebView组建。 方法一&#xff1a; 在做微信小程序开始时&#xff0c;大家都能遇到&#xff0c;WebView组件使用的URL必须要在小程序的后台设置业务域名&#xff0c;并且在对应域名服务器根目…

hexo #01 安装

本篇主要步骤 1、前置环境2、安装 hexo3、初始化 hexo4、运行 hexo 1、前置环境 参考官网教程&#xff1a;hexo 博客系统安装前提 2、安装 hexo 这里采用官网推荐的第二种方式局部安装 hexo 包。 $ npm install hexo3、初始化 hexo 创建一个空文件夹&#xff0c;用来作为项…

mysql 数据库备份和还原

数据库备份 第一步&#xff1a;先在环境变量Path里面加上mysql bin目录的路径 第二部&#xff1a;执行对应的命令 备份数据库中的表&#xff1a; 命令&#xff1a; mysqldump -u root -p fenku_lianxi customer > d:\temp.sql root是 账号 username fenku_lianxi是数据…

科技资讯|苹果Vision Pro手部追踪和手势相关新专利曝光

近日&#xff0c;美国专利商标局正式授予苹果一项与 Apple Vision Pro 主要功能相关的专利&#xff1a;手部追踪和手指手势。 苹果专利指出&#xff0c;沉浸感的质量取决于几个重要因素。例如&#xff0c;显示器的特性&#xff0c;如图像质量、帧率、像素分辨率、高动态范围 …

MATLAB|考虑自动重合闸与分布式能源的配电网可靠性评估研究

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…