![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как создать вложение при отправке электронного письма? idSMTP [D7, WinXP]
Геннадий © (2004-04-12 15:17:00)Как создать вложение при отправке электронного письма с использованием IndySMTP ?
function SendTo(Rcpt: TEMail; Attachment: TStringList; FromAdr: TEmail;
Subj: String; User, Psw: String; SMTPHost: String;
SMTPPort: Word; TimeOut: Integer): TResCode;
var
Msg : TIdMessage;
I : Integer;
SMTP: TidSMTP;
MP : TIdMessagePart;
begin
Result:= RC_UnErr;
Try
Msg:= TIdMessage.Create(NIL);
Msg.Recipients.EMailAddresses:= Rcpt;
Msg.From.Address:= FromAdr;
Msg.Subject:= Subj;
For I:=0 to Attachment.Count-1 do
begin
MP:= Msg.MessageParts.Add;
MP.StoredPathName:= Attachment.Strings[I];
end;
SMTP:= TIdSMTP.Create(NIL);
SMTP.Username:= User;
SMTP.Password:= Psw;
SMTP.Host:= SMTPHost;
SMTP.Port:= SMTPPort;
Except
Exit;
End;
Try
SMTP.Connect(TimeOut);
SMTP.Send(Msg);
Finally
SMTP.Disconnect;
End;
If Assigned(SMTP) then SMTP.Free;
If Assigned(Msg) then Msg.Free;
Result:= RC_OK;
end;
Erik (2004-04-14 09:34:00) [1]fIdMessage := TIdMessage.Create(nil);
fAttach := TStringList.Create;
Rouse_ (2004-04-13 20:22:00) [2]Он просто привел пример верного решения, которое я дал ему сегодня по асе :)
Fay (2004-04-13 18:11:00) [3]Круто! Скопировать и указать копирайт... 8)
Геннадий (2004-04-13 16:29:00) [4]IdSMTP1.Connect;
try
IdMessage1.Recipients.EMailAddresses := 'myaddress@myhost.ru';
TIdAttachment.Create (IdMessage1.MessageParts,'test.exe');
IdMessage1.Body.Text := 'сообщение';
IdMessage1.CharSet := 'charset=windows-1251';
IdMessage1.ContentType := 'text/plain';
IdSMTP1.Send(IdMessage1);
finally
IdSMTP1.Disconnect;
end;
(c) Rouse_
Геннадий (2004-04-12 17:09:00) [5]После
MP:= Msg.MessageParts.Add;
получается NIL в MP
А если сделать MP:= TIdMessagePart.Create(NIL); то появляется ошибка TidMessagePart can not be created. Use descendant classes.
В общем, мне очень не понятно, каким образом отправлять письмо с вложением.