2011-12-13 103 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