http://blog.csdn.net/ghsau/article/details/8602076

*******************************

最近要做一个解析邮件的东东,就顺便系统的搞一下JavaMail的API吧,以前搞过,现在都忘到十万八千里了,要说技术就得学以致用,要不全扔了。

说起邮箱,工作中挺常用的工具,上学的时候都没怎么用。国内的邮箱系统相当多了,163、sina、sohu、qq,这些是耳熟能详针对普通用户的邮箱,还有很多针对企业用户的。邮箱有两种协议,一种是发送邮件的协议smtp,另一种是收取邮件的协议pop3、imap,每个邮箱系统都是按照这两种协议来实现的。

我们平常可能会使用邮箱客户端,C/S的诸如outlook、foxmail,B/S的各大邮箱系统都会提供,如mail.xxxx.com,通过Java也可以实现,现在先通过telnet命令来实现发送一封简单的邮件。

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: <ghsaumiao@qq.com>;

9. 输入rcpt to: <java_mail_002@163.com>,发送到指定邮箱,注意格式一定要正确哦;

10. 输入data,表示下面开始输入邮件正文;

11. 输入from: <ghsaumiao@qq.com>,注意这个是收到邮件后,显示出来的邮件来自哪里,可以与真实邮箱不同哦;

12. 输入subject: hello,邮件标题;

13. 空一行,输入邮件内容,随便输入点啥,再换一行,输入“.”结束内容,输入quit退出。

14. 最后进入接收邮件的收件箱,就能看到邮件了。

telnet收取邮件

通过telnet命令来查看刚才发送的邮件。

1. 启动小黑框;

2. 输入telnet pop3.163.com 110,连接到163的pop3服务器,pop3默认端口是110,连接成功后,会显示welcome等字样;

3. 输入user java_mail_002,输入用户名;

4. 输入pass javamail,输入密码,这里不需要加密了;

5. 输入stat,查看一下当前收件箱状态,我这里显示1 1500,表示1封邮件,占用1500字节;

6. 输入list,查看收件箱列表;

7. 输入list 序号,查看某一封邮件信息;

8. 输入retr 序号,查看某一封邮件头及内容信息;

9. 输入quit退出。

Java Mail(一):telnet实现发送收取邮件的更多相关文章

  1. java mail实现Email的发送,完整代码

    java mail实现Email的发送,完整代码 1.对应用程序配置邮件会话 首先, 导入jar <dependencies> <dependency> <groupId ...

  2. Java Mail(二):JavaMail介绍及发送一封简单邮件

    http://blog.csdn.net/ghsau/article/details/17839983 ************************************************ ...

  3. 使用Spring的JAVA Mail支持简化邮件发送(转)

    闲来无事,翻看<Spring in Action>,发现Spring集成了对JAVA Mail的支持,有点小激动的看了一遍,嗯,话说真的简单了很多. Spring的邮件发送的核心是Mail ...

  4. 基于Java Mail 进行发送(带附件和压缩附件)的邮件

    刚进公司的training, 下面是要求: Self-study of Java Mail library:  http://www.oracle.com/technetwork/java/javam ...

  5. Java Mail 邮件发送简单封装

    上一篇文章我们用写了一个Java Mail 的Demo,相信你已经可以用那个例子来发送邮件了.但是Demo 有很多的问题. 首先每次发送需要配置的东西很多,包括发件人的邮箱和密码.smtp服务器和SM ...

  6. Java Mail 邮件发送Demo

    上周公司的项目要求开发邮件发送功能.自己在网上跟着教程边学边做了一下午,现在基本开发完成了.由于一个同事也想看下该怎么写,顺便学习下.所以我就写成了一遍教程,顺便巩固下邮件发送里面的内容. Demo ...

  7. Java Mail邮件发送的简单实现

    1.什么是java mail JAVA MAIL是利用现有的邮件账户发送邮件的工具,通过JAVA Mail的操控,让程序自动的使用设置的邮箱发送邮件. 这一机制被广泛的用在注册激活和垃圾邮件的发送等方 ...

  8. java mail Received fatal alert: handshake_failure java 无法发送邮件问题 java 发送qq邮件(含源码)

     java 无法发送邮件问题 java 发送qq邮件 报错:java mail Received fatal alert: handshake_failure (使用ssl) javax.mail.M ...

  9. java mail邮件发送(带附件) 支持SSL

    java mail邮件发送(带附件)有三个类 MailSenderInfo.java package mail; import java.util.Properties; import java.ut ...

随机推荐

  1. myBatis批量添加,修改和删除

    摘自: http://blog.csdn.net/myjlvzlp/article/details/8434376 1.批量添加元素session.insert(String string,Objec ...

  2. microsoft visual c++与microsoft visual net 版本对应关系

    7.1 -> 2003 8.0 -> 2005 9.0 -> 2008 10.0 -> 2010 11.0 -> 2012 12.0 -> 2013 14.0 -& ...

  3. SQL Server快速部署作业到多台服务器

    问题: 需要在很多的SQL Server服务器上创建相同的作业.我们可以一台一台的运行相同的脚本创建作业,但是有没有什么简便的做法呢? 解决方法: 可能很多人都没有注意到可以用多服务器环境管理SQL ...

  4. 使用mocha测试

    学习了MOCHA官网的示例,将学习成果记录一下.[原文+例子:使用mocha测试] mocha是什么 Mocha是一个跑在node和浏览器上的javascript测试框架,让异步测试变得简单有趣, 并 ...

  5. windows linux 下安装mysql 报1045 等错误

    曾经在windows 下安装mysql 没怎么出现过问题.而在linux下安装的时候出现了一些问题,昨天在windows 安装的时候也出现了1045 错误.就个人经历来看这个问题就是 root用户pa ...

  6. Axure与iPhone应用程序原型创建(五)

    在设计iPhone应用程序原型时,常常需要通过一个滑动的动画从一个屏幕切换到另一个屏幕.使用Axure RP进行设计时,可以将屏幕设计到动态面板里面,通过设置面板状态事件来实现.在下文中作者将通过一个 ...

  7. ARC和非ARC在项目中转换

    f your project doesn't use ARC: you must add the -fobjc-arc compiler flag to SVHTTPRequest.m andSVHT ...

  8. 【JavaScript】2013年人气最高的JavaScript框架排名

    本文概述 本文介绍2013年人气急速上升,2014年必须知道的JavaScript框架排名.本文所介绍的排名为Google根据全世界2013年的搜索关键词所做出的统计结果. MVC框架 JavaScr ...

  9. 通过反射获取class文件中的构造方法,运行构造方法

    /* * 通过反射获取class文件中的构造方法,运行构造方法 * 运行构造方法,创建对象 * 1.获取class文件对象 * 2.从class文件对象中,获取需要的成员 * * Constructo ...

  10. Python 函数返回多值

    返回多值函数可以返回多个值吗?答案是肯定的.比如在游戏中经常需要从一个点移动到另一个点,给出坐标.位移和角度,就可以计算出新的坐标:# math包提供了sin()和 cos()函数,我们先用impor ...