今天研究了一下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的功能还没有做研究.