java邮件开发小程序

先用DOS窗口运行命令发送一封邮件:

开始——运行——CMD:

 

telnet stmp.163.com//此为发送邮件的服务器协议

服务器返回220信息表示成功。

接着输入:

 

ehlo *****//ehlo为smtp二代协议,为区别一代的helo,将e和l换个位置。  *为任意内容

服务器返回250信息表示成功,接着选择登陆方式:

 

auth login plain

键入:

 

auth login

返回334表示选择登陆成功,接着输入要登陆的用户名和密码,以回车键结束。

 

 

//这里的账号和密码必须经过base64加密。若是pop3服务器不用加密。

服务器返回235,OK信息表示登陆成功。

 

接着输入:

 

mail from : <***@xxx.com>//一定不能出错,也要按顺序输入,否则不成功。也不能修改,输入错字符后回车重新输入。

服务器返回250表示成功,550表示失败。

 

 

rcpt to:<***@xxx.com>//同上

服务器返回250表示成功,550表示失败。

 

 

data//准备写正文。

返回354信息表示成功。

 

 

from:<[email protected]>//这里的from显示的是查看邮件时发件人信息。可以随便输入。
subject:***** //邮件主题
               //一定要空一格。
test           //这里是内容
.              //以点结束。

若服务器返回为250信息,则表示发送成功。用DOS发送邮件的功能就实现了。

在这里,我们发送邮件就要经过用户名和密码来进行身份确认,但是不同的邮箱服务器之间是否要经过确认呢?答案是否定的。

那么,我们如何能冒充服务器来直接向某个邮箱服务器发送邮件呢?

首先我们需要获得机器的IP地址来冒充一台服务器:

 

ipconfig /all//拿到IP

解析某台邮箱服务器的DNS,拿到smtp服务器的地址。

 

 

nslookup
set type=mx//邮箱类型
域名

查找出smtp服务器地址,复制,如163的163mx02.mxmail.netease.com。

 

然后连接上服务器:

 

telnet 163mx02.mxmail.netease.com 25
ehlo IP//这里填写的是本机IP

OK,剩下的就和前面一样了。这样就把本机作为服务器发送了邮件(判别是否为服务器就是反向解析dns,看是否与IP相同)。

 

 

 

 

 

你可能感兴趣的:(java)