2011-12-13 96 views
2

以下是我对SMTP客户端代码发送电子邮件印邮件服务器

VAR SMTP : TIdSMTP; 
MSG : TIdmessage; 
begin 


    MSG:=TIdmessage.Create(NIL); 
    TRY 
    WITH MSG.Recipients.Add DO BEGIN 
     Name:='me025'; 
     Address:='[email protected]' 
    END; 
    MSG.BccList.Add.Address:='[email protected]'; 
    MSG.From.Name:='self025'; 
    MSG.From.Address:='[email protected]'; 
    MSG.Body.Text:='<Message Body>'; 
    MSG.Subject:='<Subject of message>'; 
    SMTP:=TIdSMTP.Create(NIL); 
    TRY 
     SMTP.Host:='127.0.1.1'; // IP Address of SMTP server 
     // 127.0.1.1 
     SMTP.Port:=25; // Port address of SMTP service (usually 25) 
     SMTP.Connect; 
     TRY 
     SMTP.Send(MSG) 
     FINALLY 
     SMTP.Disconnect 
     END 
    FINALLY 
     SMTP.Free 
    END 
    FINALLY 
    MSG.Free 
    END; 

end; 

将在同一台PC上使用SMTPSERVER

SMTP服务器是一个工作印第安纳波利斯10非官方样品 http://indy.fulgan.com/ZIP/Indy10demo.zip

每当我连接到服务器“套接字错误#11001主机找不到”错误occers

但smtp服务器已收到ng正确地显示所有参数并在GUI上正确显示

回答

2

您的PC的地址是127.0.1.1还是您尝试使用localhost(127.0.0.1)?人们应该习惯于DNS名称......只要IPv6将成为主流,至少人们将不再能够轻松地记住IP号码:)

+0

谢谢,现在非常好的作品(服务器获取参数)和没有任何例外情况发生,但接收方无法获得邮件 – VibeeshanRC

+3

@vibeeshanRC:'TIdSMTPServer'只接受来自SMTP客户端的原始电子邮件数据,例如'TIdSMTP',没有别的。在您的代码中,您有责任通过将数据存储在本地存储中供以后由POP3和/或IMAP4客户端访问,或者将该电子邮件转发给另一个SMTP服务器。如果该交付不起作用,那么您不能正确存储/转发数据,因此请显示存储和检索数据的代码。 –

+0

@RemyLebeau你知道任何使用Indy的邮件客户端和SMTP服务器的教程吗? – Mawg