10

http://www.indyproject.org/Sockets/Demos/index.EN.aspxで提供されているデモでは、受信したストリームのみがファイルに保存されるため、そのストリームをメールとして効果的に送信する方法がわかりません。

誰かが私にこれを行う方法を教えてもらえますか、または私にもっと完全な例を教えてもらえますか?

4

2 に答える 2

14

メールを送信する方法の完全な例を次に示します。

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

(WITHが嫌われていることは知っていますが、私は通常、何が起こっているのかについて疑いがなく、あいまいさの可能性がない(またはごくわずかな)場合に、このような場合に使用します)

于 2010-03-14T08:10:21.857 に答える
9

SMTPサーバーコンポーネントはメールを送信できません。メールを受信することしかできません。メールを送信するには、SMTPクライアントコンポーネント(TidSMTP)が必要です。メールを送信するときのメールサーバーは、SMTPクライアントのように機能します。

于 2010-03-14T13:11:00.750 に答える