2010-03-14 3 views

Répondre

9

Un composant SMTP serveur ne peut pas envoyer de courrier - il peut seulement le recevoir. Vous avez besoin d'un composant (TidSMTP) SMTP client pour envoyer des messages. Un serveur de messagerie lorsqu'il envoie du courrier agit comme un client SMTP.

+1

Pour développer cela, Indy a un composant TIdSMTPRelay qui est destiné à être utilisé sur le serveur pour transférer les emails reçus à d'autres serveurs. –

12

Voici un exemple complet sur la façon d'envoyer un e-mail:

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; 
. 
. 

(je sais que, est mal, mais je l'utilise généralement dans des cas comme celui-ci où il n'y a aucun doute quant à ce qui se passe , et où il n'y a pas (ou juste un infinitésimal) chance d'ambiguïté)

+20

Wow - ce code crie. Je convertirais la plupart en minuscules ou majuscules pour le rendre plus convivial pour la plupart des développeurs Delphi. –

Questions connexes