基于web的java Mail的邮件发送系统的详解

本文详细介绍了如何构建一个基于Web的Java Mail邮件发送系统,讲解了SMTP、POP和IMAP协议,以及JavaMail的核心组件和配置。通过封装邮件发送过程,展示了如何使用Session和Transport类进行邮件的创建和发送。最后,提到了通过Web页面进行邮件发送的测试方法。
摘要由CSDN通过智能技术生成

本系统是基于web的,引用了第三方的API:mail.jar开发包。

一.目录结构的介绍

我们可以到Oracle官网下载mail.jar开发包,我下载的版本是1.4.5。下载成功后,会得到一个javamail1_4_5.zip的文件,然后解压。

首先是根目录下的mail.jar是它的核心包


 在lib子目录下有对应如下的jar包,其中mailapi.jar封装了创建邮件内容和面向普通开发人员调用邮件发送和接收的API类,其它三个jar文件(imap.jar、pop3.jar、smtp.jar)则是封装了它们名称相对应协议的服务实现程序。mailapi.jar与其它三个jar文件的关系,犹如JDBC API与各个数据库所实现jdbc驱动程序之间的关系一样。在编译Java邮件程序时,只需要mailapi.jar文件即可,但是,在运行时必须要有相应邮件协议的底层服务实现程序。本次应用程序中只使用到邮件发送功能,所以可以只导入smtp.jar和mailapi.jar这两个文件,如果应用程序需要使用邮件的接收功能,则可以安装pop3.jar或imap.jar和mailapi.jar这两个jar文件,而不用导入整个mail.jar文件。


二.相关协议的介绍

1.SMTP协议

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件

2.POP协议

POP 代表邮局协议(Post Office Protocol)。目前用的是版本 3,也称 POP3,RFC 1939 定义了这个协议。POP 是一种机制,因特网上大多数人用它得到邮件。它规定每个用户一个邮箱的支持。这就是它所能做的,而这也造成了许多混淆。使用 POP 时,用户熟悉的许多性能并不是由 POP 协议支持的,如查看有几封新邮件消息这一性能。这些性能内建于如 Eudora 或 Microsoft Outlook 之类的程序中,它们能记住一些事,诸如最近一次收到的邮件,还能计算出有多少是新的。

3.IMAP协议

IMAP 是更高级的用于接收消息的协议。在 RFC 2060 中被定义,IMAP 代表因特网消息访问协议(Internet Message Access Protocol),目前用的是版本 4,也称 IMAP4。在用到 IMAP 时,邮件服务器必需支持这个协议。不能仅仅把使用 POP 的程序用于 IMAP,并指望它支持 IMAP 所有性能。假设邮件服务器支持 IMAP,基于 JavaMail 的程序可以利用这种情况 — 用户在服务器上有多个文件夹(folder),并且这些文件夹可以被多个用户共享。

       因为有这一更高级的性能,您也许会认为所有用户都会使用 IMAP。事实并不是这样。要求服务器接收新消息,在用户请求时发送到用户手中,还要在每个用户的多个文件夹中维护消息。这样虽然能将消息集中备份,但随着用户长期的邮件夹越来越大,到磁盘空间耗尽时,每个用户都会受到损失。使用 POP,就能卸载邮件服务器上保存的消息了。

最后介绍一下MIME,MINE 代表多用途因特网邮件扩展标准(Multipurpose Internet Mail Extensions)。它不是邮件传输协议。但对传输内容的消息、附件及其它的内容定义了格式。

好,以上是邮件发送和接受的基本知识,有了基本知识,我们在结合代码对java Mail进行深入的了解和学习

邮件发送和接受的示意图


邮件发送的示意图


三.Mail发送邮件的封装

public class Mail {   
  
    private MimeMessage mimeMsg; //MIME邮件对象   
    private Session session; //邮件配置对象   
    private Properties props; //系统属性   
    @SuppressWarnings("unused")
	private boolean needAuth = false; //sm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值