Так как демонстрация, данная в http://www.indyproject.org/Sockets/Demos/index.EN.aspx только, сохраняет полученный поток в файл, я не знаю, как эффективно отправить тот поток как почту.
Кто-либо мог учить меня, как сделать это или указать на меня еще некоторый полный пример?
Компонент SMTP сервер не может отправлять почту - он может только ее получать. Для отправки почты вам понадобится клиентский компонент SMTP (TidSMTP). Почтовый сервер при отправке почты действует как SMTP-клиент.
Вот полный пример того, как отправить электронное письмо:
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 не одобряют, но я обычно использую его в таких случаях, когда нет сомнений в том, что происходит, и где нет (или просто бесконечно малый) шанс двусмысленности)