发布日期:2026-01-12 18:52点击次数:144
前言
Email就是电子邮件,我们平常使用的QQ邮箱,网易邮箱,Foxmail都是用来收发邮件的,利用Java程序也可以完成收发电子邮件的功能。
传统的邮件是通过邮局投递,从一个邮局到另一个邮局,终到达用户的邮箱。电子邮件与之的发送过程是类似的。电子邮件是从用户电脑的邮件软件(例如:Outlook),发送到邮件服务器上,可能经过若干个邮件服务器的中转,终到达对方邮件服务器上,收件方就可以用软件接收邮件。
我们把类似Outlook这样的邮件软件称为MUA:Mail User Agent:意思是给用户服务的邮件代理;
邮件服务器称为MTA:Mail Transfer Agent:意思是邮件中转的代理
终到达的邮件服务器称为MDA:Mail Delivery Agent:邮件到达的代理。
邮件一旦到达MDA,就不在动了。实际上,电子邮件通常就存储在MDA服务器的硬盘上,然后等收件人通过软件或者登录浏览器查看邮件。
邮件协议常见的邮件协议有:POP3,SMTP,IMAP
POP3:是Post Office Protocol 3 的简称,POP3允许用户从服务器上把邮件存储到本地主机即自己的计算机)上,同时删除保存在邮件服务器上的邮件。
SMTP:全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP协议属于TCP/IP协议簇,帮助每台计算机在发送或中转信件时找到下一个目的地。
SMTP认证,就是要求须在提供了账户名和密码之后才能登录SMTP服务器,使得那些垃圾邮件的散播者无可乘之机。增加SMTP认证的目的是为了使用户避免受到垃圾邮件的侵扰。
IMAP:全称是Internet Mail Access Protocol,即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端 软件登录邮箱,铁皮保温看到的邮件以及状态都是一致的。
IMAP和POP3有什么区别?
1.POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的。
2.IMAP提供webmail与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。
准备SMTP登录信息
常用邮件服务商的SMTP信息:
·QQ邮箱: SMTP服务器是smtp.qq.com,端口是465 / 587
·163邮箱:SMTP服务器是smtp.163.com,端口是465126邮箱: SMTP服务器是smtp
.126.com,端口是25
.Gmail邮箱:SMTP服务器是smtp.gmail.com,端口是465 / 587
准备好SMTP登录信息后,我们先要把JavaMail相关的依赖Jar包javax.mail-1.6.2.jar加入至当前项目。
jar包:
手机:18632699551(微信同号)链接:https://pan.baidu.com/s/1H8pnkVskG8casxIoUCq69Q 提取码:9aym
以126邮箱发送至QQ邮箱为例:
1.先在邮箱中开启此服务新增授权密码
2.在Java中进行邮件的发送(邮件只包含文本)以25端口为例,连接SMTP服务器时,需要准备一个Properties对象,填入相关信息。后获取Session实例时,如果服务器需要认证,还需要传入一个Authenticator对象,并返回指定的用户名和口令。当我们获取到Session实例后,打开调试模式可以看到SMTP通信的详细内容,便于调试。
发送邮件
1.先创建一个Session对象
2.创建邮件对象(Message抽象类的子类)
RecipientType.TO代表发送人
RecipientType.CC代表抄送人
3.邮件正文包含有“html”标签(控制文本的格式)
4.发送
整体代码如下:
3.在Java中进行邮件的发送(邮件包含文本和附件(图片))在上面代码基础上
1.设置邮件内容
邮件正文内容
内容类型:设置字符编码集
2.邮件附件内容
个人信息是指以电子或其他方式记录的能够单独或者与其他信息结识别特定自然人身份或者反映特定自然人活动情况的各种信息。个人信息包括1)姓名、出生日期、住址、电话、电子邮件等个人基本资料;2)身份证、护照、驾驶证、工作证、社保证、居住证等个人身份信息;3)基因、指纹、声纹、掌纹、面部识别特征等个人生物识别信息;4)个人信息账号、IP地址、个人数字证书等网络身份标识信息;4)个人健康生理信息;5)职业、职位、工作单位、学历、工作经历、成绩单等个人教育工作信息;6)银行账号、口令、存款信息、房产信息、信贷信息、征信信息、交易和消费记录、流水记录、虚拟财产等个人财产信息;7)通信记录和内容、短信、彩信、电子邮件等个人通信信息;8)通讯录、好友列表、群列表、电子邮件地址列表等联系人信息;9)网络浏览记录、软件使用记录、点击记录、收藏列表等个人上网操作记录信息;10)硬件序列号、软件列表、设备MAC地址、唯一设备识别码等设备信息;11)定位信息、行踪轨迹、住宿信息、经纬度等个人位置信息;12)婚史、宗教信仰、取向、未公开的违法犯罪记录等其他信息。
天眼查资料显示,常州金纬智能装备制造有限公司,成立于2021年,位于常州市,是一家以从事电气机械和器材制造业为主的企业。企业注册资本300万人民币。通过天眼查大数据分析,常州金纬智能装备制造有限公司利信息21条,此外企业还拥有行政许可3个。
3.组正文+附件
邮件内容
4.发送
5.整体代码
JavaMailUtil类是一个封装的类,可重复利用
邮件内容
以上就是基于Java实现收发电子邮件功能的详细内容,更多关于Java收发电子邮件的资料请关注脚本之家其它相关文章!