2010-03-14 14 views

Respuesta

9

Un servidor SMTP componente no puede enviar correo, solo puede recibirlo. Necesita un componente SMTP cliente (TidSMTP) para enviar correo. Un servidor de correo cuando envía correo actúa como un cliente SMTP.

+1

Para ampliarlo, Indy tiene un componente TIdSMTPRelay que se debe usar en el extremo del servidor para reenviar correos electrónicos recibidos a otros servidores. –

12

Aquí está un ejemplo completo de cómo enviar un correo electrónico:

VAR SMTP : TIdSMTP; 
VAR MSG : TIdMSG; 
. 
. 
    MSG:=TIdMSG.Create(NIL); 
    TRY 
    WITH MSG.Recipients.Add DO BEGIN 
     Name:='<Name of recipient>'; 
     Address:='<Email address of recipient>' 
    END; 
    MSG.BccList.Add.Address:='<Email address of Blind Copy recipient>'; 
    MSG.From.Name:='<Name of sender>'; 
    MSG.From.Address:='<Email address of sender>'; 
    MSG.Body.Text:='<Message Body>'; 
    MSG.Subject:='<Subject of message>'; 
    SMTP:=TIdSMTP.Create(NIL); 
    TRY 
     SMTP.Host:='x.x.x.x'; // IP Address of SMTP server 
     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; 
. 
. 

(Sé que con está mal visto, pero por lo general lo uso en casos como éste, donde no hay ninguna duda en cuanto a lo que está pasando , y donde no hay (o simplemente es infinitesimal) una posibilidad de ambigüedad)

+20

Wow: este código grita. Convertiría la mayor parte en minúsculas o mayúsculas para que sea más amigable para la mayoría de los desarrolladores de Delphi. –

Cuestiones relacionadas