用telnet发邮件(支持smtp认证)

jackxiang 2009-11-1 15:10 | |
1.用telnet连到远程服务器

可以
telnet mail.test.com 25

或者
telnet mail.test.com smtp

2.跟服务器打招呼
HELO mail.test.com

服务器应该返回
250

如果服务器smtp需要验证,进行第三步,否则到第四步
3.输入
AUTH LOGIN

会一次提示你
334 VXNlcm5hbWU6

334 UGFzc3dvcmQ6
后边的内容是提示输入用户名和口令,信息是经过base64编码的
输入的用户名和口令也要经过编码,这里是一个编码、解码的工具
smtp认证通过后会显示
235 2.0.0 Authentication successful
4.写信
输入
MAIL FROM: <juhui@test.com>


RCPT TO: <phpbird@test.com>

分别是发自,发往
如果正常都应该返回250
输入
DATA

开始写信
Subject:test mail
test email
.

250 2.0.0 Ok: queued as 93223136C8E
退出
QUIT

Postfix上试用通过。



都是用rcpt to命令,对于抄送和密送的区分问题如下:
实现抄送及密送

在SMTP 命令集中并没有RCPT CC 或RCPT BCC 相关命令, 那要如何来实现抄送和密送功能呢?

在网络上找到这样一句话: “ 所有的接收者协商都通过RCPT TO 命令来实现,如果是BCC ,则协商发送后在对方接收时被删掉信封接收者”, 开始一直不明白这句话是什么意思? 后来通看查看foxmail 的邮件原文发现:

Date: Wed, 6 Jan 2010 12:11:48 +0800

From: "carven_li" < carven_li @smtp.com>

To: "carven" <carven@smtp.com>

Cc: "sam" <sam@smtp.com>,

  "yoyo" <yoyo@smtp.com>

BCC: "clara" <clara@tsmtp.com>

Subject: t

X-mailer: Foxmail 5.0 [cn]

Mime-Version: 1.0

Content-Type: multipart/mixed;

    boundary="=====001_Dragon237244850520_====="

才恍然大悟, 所谓的” 协商” 应该就是指发送方在Data 中指定哪些为CC, 哪些为BCC, 默认情况下什么都不写, 只发送第一个RCPT TO 的mail, 其他的都被过滤掉.

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/2155/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2010-3-21 23:33
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]