Java Mail(一):telnet实现发送收取邮件
最近要做一个解析邮件的东东,就顺便系统的搞一下Java Mail的API吧,以前搞过,现在都忘到十万八千里了,要说技术就得学以致用,要不全扔了。
说起邮箱,工作中挺常用的工具,上学的时候都没怎么用。国内的邮箱系统相当多了,163、sina、sohu、qq,这些是耳熟能详针对普通用户的邮箱,还有很多针对企业用户的。邮箱有两种协议,一种是发送邮件的协议smtp,另一种是收取邮件的协议pop3、imap,每个邮箱系统都是按照这两种协议来实现的。
我们平常可能会使用邮箱客户端,C/S的诸如outlook、foxmail,B/S的各大邮箱系统都会提供,如mail.xxxx.com,通过Java也可以实现,现在先通过telnet命令来实现发送一封简单的邮件。
1. 启动小黑框;
2. 输入telnet命令,如果提示该命令不存在神马的,按如下操作:开始-->控制面板-->程序-->开启和关闭windows功能-->telnet客户端,如果显示“欢迎使用 Microsoft Telnet Client”,进入下一步;
3. 输入telnet smtp.qq.com 25,这是连接到qq的smtp服务器,smtp默认端口是25,也可以连接其它邮箱的,连接成功后,会显示220 smtp.qq.com Esmtp QQ Mail Server神马的,220表示连接成功;
4. 输入ehlo ghsaumiao,是和服务器打个招呼,不知道当初研究邮箱协议的大神为什么不直接用hello,而是颠倒过来呢,ehlo后面加的是自己邮箱账户;
5. 输入auth login,登录验证;
6. 输入邮箱用户名,自己的自己知道哈,不需要带@和后面的东西,另外需要base64加密,咋加密呢,有现成的应用啊,百度一下base64;
7. 输入邮箱密码,也是base64加密,如果登陆成功会提示235 Authentication successful;
8. 输入mail from: <[email protected]>;
9. 输入rcpt to: <[email protected]>,发送到这个邮箱,注意格式一定要正确哦;
10. 输入data,表示下面开始输入邮件正文;
11. 输入from: <[email protected]>,注意这个是收到邮件后,显示出来的邮件来自哪里,可以与真实邮箱不同哦;
12. 输入subject: hello,邮件标题;
13. 空一行,输入邮件内容,随便输入点啥,再换一行,输入“.”结束内容,输入quit退出。
14. 最后进入接收邮件的收件箱,就能看到邮件了。
通过telnet命令来查看刚才发送的邮件。
1. 启动小黑框;
2. 输入telnet pop3.163.com 110,连接到163的pop3服务器,pop3默认端口是110,连接成功后,会显示welcome等字样;
3. 输入user ghsau,输入用户名;
4. 输入pass *********,输入密码,这里不需要加密了;
5. 输入stat,查看一下当前收件箱状态,我这里显示295 15674926,表示295封邮件,占用15674926字节;
6. 输入list,查看收件箱列表;
7. 输入list 序号,查看某一封邮件信息;
8. 输入retr 序号,查看某一封邮件头及内容信息;
9. 输入quit退出。