在 win2000 的NT服务中,是否可以通过线程来发送Email? 150分求解(150分)

F

fengtao

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用TNMSmtp控件写了一个发送Emai的线程,在前台使用Button启动这个线程时
运行正常,能够发送Email,可是放到NT服务中后就会在Connect时被卡住.
(注:我是使用263的SMTP服务器,程序中已加入对Smtp认证的处理)
之后我又使用Indy 的 IdSMTP、IdMessage 控件重新做了一个发送的Email的线
程, 在前台使用Button启动线程后,可以发送Email,放到NT_Server后也是在
Connect时被卡住。
我以为是在SMTP认证时出的问题,所以又用Indy的IdSMTP,IdMessage,
IdDnsResolver控件写了一个Email‘邮政快递 ’的线程,所谓‘邮政快递’
就是不需要通过我的263免费邮箱所在的SMTP服务器,而直接把Email发送到
目标Email地址所使用的SMTP服务器,这样就取消了 SMTP认证 这一过程,
Email也可以更快地发送到目标地址。(需通过地址解析来得到目标Email地址
所在的smtp服务器)。 程序放到前台用Button启动线程后,能够发送Email,
只是放到NT服务中就不行。

出现问题的时机: 使用TNMSmtp控件时,是在 connect 时被卡住。
   
           使用 IdSMTP控件时,也是在connect 是被卡住。   

        ‘邮政快递’不需要connect,但是它在 QuickSend 时被卡住。
请问这是什么原因?请高手指点一下。
(所谓‘被卡住’,就是程序执行到出问题的地方就不再往下执行了。在nt服务中
我是通过写txt文件来确定问题程序行的)
 
完全可以的..Delphi下可以用ClientSocket直接跟smtp服务器对话.
意思就是用TELNET跟服务器对话.这样无论在任何系统(win,linux.unix等等)下面也可以实现.当然.不同的语言的有不同的Telnet应用.比如VB下可以通过Winsock.
而且还需要学习smtp协议.呵呵.
这是一个方向.可能给不了你什么帮助.具体可以在网上查找一下.应该不难的..
 
试一下SVCOM这个控件包吧,对NT Services支持得不错,这个问题也可能是DELPHI的BUG
 
顶部