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

后端 未结 2 1957
野的像风
野的像风 2021-02-20 17:09

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 m

相关标签:
2条回答
  • 2021-02-20 17:40

    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)

    0 讨论(0)
  • 2021-02-20 18:01

    A SMTP server component can't send mail - it can only receive it. You need a SMTP client component (TidSMTP) to send mail. A mail server when it sends mail acts like an SMTP client.

    0 讨论(0)
提交回复
热议问题