电子邮件的特快传递功能(50分)

  • 主题发起人 主题发起人 MrMengyi
  • 开始时间 开始时间
M

MrMengyi

Unregistered / Unconfirmed
GUEST, unregistred user!
这个话题很早就有问了
我查了很多以往的回答
从中得到许多启示
但我总觉得这些答案并没有从根本上回答该如何解决
也是我能力有限,看得不是很透彻吧
下面我就把自己的理解写出来
希望能够抛砖引玉
 
首先我写一下以往的解答
一种是使用indy组件的方法,代码就不说了。
我没有实验成功过,但它应该是没有问题的。
其思路主要是使用DNS组件得到smtp服务器的地址
然后就可以用smtp协议了。
另一种解答是从原理上解释的。其中涉及了smtp的一些具体细节
 
我的疑问在于
1.如果要得到smtp服务器的地址,是不是一定要用dns组件?
我取得163.net的smtp地址并不需要dns组件。否则,一般的邮件怎么发呀?
2.在使用smtp时,特快专递使用的交互协议和一般的邮件发送有区别吗?
 
我贴了代码的!发送的实验我成功了!
 
今天我用telnet(win98)作了一个很简单的实验:
连接 smtp.163.net : 25
--------------------------------------------------
220 163.net system SMTP(Anti Spam+) Server ready
helo gb
250 bjapp10.163.net
mail from:<ttt@263.net>
250 Ok
---------------------------------------------------
220 163.net system SMTP(Anti Spam+) Server ready
helo gb
250 bjmx4.163.net
mail from:<mrmengyi@163.net>
553 You are not authorized to send mail as <mail from:<mrmengyi@163.net>>, authe
ntication is required
-------------------------------------------------
我想,这两段信息有经验的大侠应该是知道怎么回事了吧
 
我实验了sina的邮件
163.net和263.net的两个服务器是在一起的
sina是分开的
从我取得的地址来看,最终要取得的地址是pop3服务器的地址
其中163.net的smtp和pop3是一个IP
而sina是两个

所以特快专递的原理就是:
1.找到目标服务器的地址(我想就是使用DNS组件的原因吧,这个也是最关键的一步)
2.按一般的smtp协议进行通讯

关于(1),我看了解答中的程序(GetMxList函数)。利用indy的DNS组件取得目标地址

还有,我原来没有使用成功是因为我把两个地址写成163.net-->163.net了
将源地址改掉就可以了
 
祝你考研成功!
 
接受答案了.
 
后退
顶部