现在的位置: 首页 > 综合 > 正文

Tmail2000研究–Demo不能发送Email的Bug

2013年06月30日 ⁄ 综合 ⁄ 共 632字 ⁄ 字号 评论关闭

今天研究了一下TMail2000,发现他的Demo发送Email根本就行了.

开始发现每次[Save fields to header]时老是在mToNames列表中多了一个空的Item,发送email返回的消息也是Bad address xxxx

后来跟踪发现

function TSMTP2000.SendMessageTo(const From, Dests: String): Boolean;

这个方法里,它不会理会Dests的Item是否为空

    for Loop := 0 to sDests.Count-1 do
    begin
      FSocketTalk.Talk('RCPT TO: <'+sDests[Loop]+'>'#13#10, #13#10, stRcpt);
      FSocketTalk.WaitServer;

 

后来我加了一句

    for Loop := 0 to sDests.Count-1 do
    begin
      if sDests[Loop]='' then Continue;  // add by mofen
     

      FSocketTalk.Talk('RCPT TO: <'+sDests[Loop]+'>'#13#10, #13#10, stRcpt);
      FSocketTalk.WaitServer;

      ......

一切正常.看来Tmail2000不是收费的还是做得不够细致.呵呵.

今天只研究了他的发送Email的功能,对于接收Email的功能还没有做研究.

抱歉!评论已关闭.