Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to send a mail message using Indy's smtp server component?

Tags:

delphi

indy

Since the demo given in http://www.indyproject.org/Sockets/Demos/index.EN.aspx only saves the received stream to a file, I don't know how to effectevely send that stream as a mail.

Could anyone teach me how to do this or to point me some more complete example?

like image 984
eKek0 Avatar asked Mar 14 '10 01:03

eKek0


People also ask

How to send email from Delphi application?

Sending Email From Delphi There are many ways you can send an email directly from Delphi, but the simplest way is to use the ShellExecute API. This will send the email using the default email client installed on the computer. While this approach is acceptable, you're unable to send attachments this way.


1 Answers

Here's a complete example on how to send an email:

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

(I know that WITH is frowned upon, but I generally use it in instances like this where there's no doubt as to what is going on, and where there's no (or just an infinitesimal) chance of ambiguity)

like image 72
HeartWare Avatar answered Oct 12 '22 15:10

HeartWare