1. SMTP、POP3、IMAP 啥关系 ?
先看一张比较有年代感的图...
SMTP:
https://datatracker.ietf.org/doc/rfc2821/ https://datatracker.ietf.org/doc/rfc5336/
SMTP 是用来【发】邮件的
POP3:
注:POP3 协议很简单,功能也很有限;比如 POP3 虽然允许从邮件服务器上下载邮件,但它不会将客户端的操作(如移动邮件、标记已读等)反馈到服务器上;
POP3 是用来【收】邮件的
IMAP:
注:IMAP 不仅可以从邮件服务器上下载邮件,而且它可以将客户端上的操作(如移动邮件、标记已读等)都反馈到邮件服务器上;所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。
IMAP 也是用来【收】邮件的
比 POP3 更专业
2. SMTP 通信协议概述
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)定义了邮件客户端与SMTP服务器之间,以及两台SMTP服务器之间发送邮件的通信规则 。SMTP 协议属于TCP/IP协议族,通信双方采用一问一答的命令/响应形式进行对话,且定了对话的规则和所有命令/响应的语法格式。
—— 抄的
—— 抄的
是时候秀一波操作了
下面演示用 SMTP 命令发一封邮件
场景描述:
工具:Telnet 发件人:<lzx@dareway.com.cn> 收件人:<webj2ee@126.com> 主题:A very important email. 正文:Hello, I am webj2ee, good to see you.
A. 检查是否已安装 Telnet 客户端:
B. 使用 SMTP 命令发送邮件:
3. 使用 Commons Email 发邮件
Java 环境中实现邮件发送功能,常用两种方式:
Apache Commons Email 是基于 JavaMail 的封装,接口更友好,使用更简单;
示例:使用 JavaMail 发送邮件
示例:使用 Apache Commons Email 发送邮件
建议使用
Apache Commons Email
实现邮件收发功能
参考:
http://www.oracle.com/technetwork/java/javamail/index.html https://javaee.github.io/javamail/ http://commons.apache.org/proper/commons-email/