算是php中的mail函数引发的血案吧!
我无意中就看到了有手动实用smtp协议的文章,然后我就尝试,诸多问题,终于一一被解决了。
now,开始!
smtp协议是发送端到邮件服务器传送协议,和邮件服务器之间的传送协议。
POP协议是邮件服务器发送到接受方的传送协议。
我们使用telnet来手工操作这两个协议。
首先我们用telnet来操作smtp协议,将我们要写的邮件发送到我们注册的邮件服务器,我这里是用163的smtp.163.com.
我的发送地址是kefeng-jin@163.com
我是WIN7系统,默认是没有telnet服务的,所以需要在“控制面板”上的程序中去安装这个telnet服务,具体网上有。
在命令行下输入:telnet smtp.163.com 25 //使用的是25号端口(这个颜色的是我们输入的内容)
220 163.com Anti-spam GT for Coremail System <163com[20101010]>
helo smtp.163.com //相当于和服务器进行握手,通知服务器
250 OK
auth login //表示要进行邮箱密码账号的输入(下面先输入账号后输入密码)
334 dXNlcm5hbWU6
a2VmZW5nLWppbg== //不能直接输入明文,这是经过Base64加密后的账号
334 UGFzc3dvcmQ6
OTAwNzE0 //加密后的值
235 Authentication successful
mail from:<kefeng-jin@163.com> //发送者邮箱,根据自己的改
250 Mail OK
rcpt to:<371385396@qq.com> //接收者邮箱,可以同时输入多条
250 Mail OK
data //将之后的数据作为数据发送
354 End data with <CR><LF>.<CR><LF>
TO:371385396@qq.com //这里的to,from随意写,可以骗人
from:dota@163.com
subject: hello world //标题
this is my first mail sent in the console //标题下空一行输入内容,邮件写完,以一个句点加回车结束
.
250 Mail OK queued as smtp10,wKjADQ2ApxRnnqBE0CWaEw==.38326S3
QUIT //退出命令
注意:上面我在开始弄得时候,犯了很多的错误,当输入一条命令,不小心输入错误的时候,再按Backspace键修改没有还是会错,所以直接重新输入吧。
Base64加密:我可能要发代码,现在代码有点问题,没时间管,没有改,有两个网址,一个事介绍这个加密的http://www.5dmail.net/html/2004-1-30/200413084348.htm,另一个是直接执行加密的
http://www.chinaue.com/tool/md5/Base64.htm。
遗留问题:我用gmail邮箱就有问题,待高手解决。网上说是因为ssl加密的问题,我还没有解决。
POP3收信操作,这个比较简单,我考别人的。(这里的用户,密码不需要加密)
[crazywill@localhost crazywill]$ telnet pop.163.com 110 #telnet登录110端口
Trying 202.108.5.104...
Connected to pop.163.com.
Escape character is '^]'.
+OK Welcome to coremail Mail Pop3 Server (163com[20050206])
USER crazywill # 用户名
+OK core mail
PASS mypassword # 登录密码
+OK 254 message(s) [27676669 byte(s)]
STAT # 查看邮箱状态
+OK 254 27676669
LIST # 邮件列表
+OK 254 27676669
1 2468
2 21945
3 33136
4 2071
5 3364
6 18906
7 3136
8 24764
.................
TOP 254 0 # 查看指定邮件的邮件头,0表示查看整个邮件头,其它正整数表示限制返回多少行。
+OK core mail
Received: from smtp.63.com (unknown [58.252.70.158])
by smtp5 (Coremail) with SMTP id wKjREDrA9gIfFqlEjCnRAg==.29062S4;
Mon, 03 Jul 2006 21:07:18 +0800 (CST)
TO: crazywill@163.com
FROM : cccc@163.com # 这里即前面发信时伪造的一个假发送人信息,平时正常操作只显示这个。
SUBJECT: test by telnet/smtp # 邮件主题
Message-Id: <44A91687.0E6F6C.07562>
Date: Mon, 3 Jul 2006 21:07:19 +0800 (CST)
Sender: crazywill@163.com # 这里是真正的发送人,不可伪造。
.
RETR 254 # 获取指定邮件
+OK 354 octets
Received: from smtp.63.com (unknown [58.252.70.158])
by smtp5 (Coremail) with SMTP id wKjREDrA9gIfFqlEjCnRAg==.29062S4;
Mon, 03 Jul 2006 21:07:18 +0800 (CST)
TO: crazywill@163.com
FROM : cccc@163.com
SUBJECT: test by telnet/smtp
Message-Id: <44A91687.0E6F6C.07562>
Date: Mon, 3 Jul 2006 21:07:19 +0800 (CST)
Sender: crazywill@163.com
test, just a test.
.
DELE 254 # 删除第254封邮件
+OK core mail
STAT # 查看邮箱状态
+OK 253 27676315
QUIT # 退出
+OK core mail
Connection closed by foreign host.
[crazywill@localhost crazywill]$