Форум: "Сети";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
ВнизNMSMTP? или IdSMTP? Найти похожие ветки
← →
Djon007 © (2004-02-02 22:10) [0]Добрый вечер мастера! есть проблема мне нужно через IdSMTP приложить файл к отправки.Это вобще можно зделать?
или же как в NMSMTP включить Authentication?
Зарание спосибо.
← →
Soi © (2004-02-03 06:30) [1]Попробуй вот так:
uses Mapi;
function SendEMail(Handle: THandle; Mail: TStrings): Cardinal;
type
TAttachAccessArray = array [0..0] of TMapiFileDesc;
PAttachAccessArray = ^TAttachAccessArray;
var
MapiMessage: TMapiMessage;
Receip: TMapiRecipDesc;
Attachments: PAttachAccessArray;
AttachCount: Integer;
i1: integer;
FileName: string;
dwRet: Cardinal;
MAPI_Session: Cardinal;
WndList: Pointer;
begin
dwRet := MapiLogon(Handle,
PChar(""),
PChar(""),
MAPI_LOGON_UI or MAPI_NEW_SESSION,
0, @MAPI_Session);
if (dwRet <> SUCCESS_SUCCESS) then
begin
MessageBox(Handle,
PChar("Error while trying to send email"),
PChar("Error"),
MB_ICONERROR or MB_OK);
end
else
begin
FillChar(MapiMessage, SizeOf(MapiMessage), #0);
Attachments := nil;
FillChar(Receip, SizeOf(Receip), #0);
if Mail.Values["to"] <> "" then
begin
Receip.ulReserved := 0;
Receip.ulRecipClass := MAPI_TO;
Receip.lpszName := StrNew(PChar(Mail.Values["to"]));
Receip.lpszAddress := StrNew(PChar("SMTP:" + Mail.Values["to"]));
Receip.ulEIDSize := 0;
MapiMessage.nRecipCount := 1;
MapiMessage.lpRecips := @Receip;
end;
AttachCount := 0;
for i1 := 0 to MaxInt do
begin
if Mail.Values["attachment" + IntToStr(i1)] = "" then
break;
Inc(AttachCount);
end;
if AttachCount > 0 then
begin
GetMem(Attachments, SizeOf(TMapiFileDesc) * AttachCount);
for i1 := 0 to AttachCount - 1 do
begin
FileName := Mail.Values["attachment" + IntToStr(i1)];
Attachments[i1].ulReserved := 0;
Attachments[i1].flFlags := 0;
Attachments[i1].nPosition := ULONG($FFFFFFFF);
Attachments[i1].lpszPathName := StrNew(PChar(FileName));
Attachments[i1].lpszFileName :=
StrNew(PChar(ExtractFileName(FileName)));
Attachments[i1].lpFileType := nil;
end;
MapiMessage.nFileCount := AttachCount;
MapiMessage.lpFiles := @Attachments^;
end;
if Mail.Values["subject"] <> "" then
MapiMessage.lpszSubject := StrNew(PChar(Mail.Values["subject"]));
if Mail.Values["body"] <> "" then
MapiMessage.lpszNoteText := StrNew(PChar(Mail.Values["body"]));
WndList := DisableTaskWindows(0);
try
Result := MapiSendMail(MAPI_Session, Handle,
MapiMessage, MAPI_DIALOG, 0);
finally
EnableTaskWindows( WndList );
end;
for i1 := 0 to AttachCount - 1 do
begin
StrDispose(Attachments[i1].lpszPathName);
StrDispose(Attachments[i1].lpszFileName);
end;
if Assigned(MapiMessage.lpszSubject) then
StrDispose(MapiMessage.lpszSubject);
if Assigned(MapiMessage.lpszNoteText) then
StrDispose(MapiMessage.lpszNoteText);
if Assigned(Receip.lpszAddress) then
StrDispose(Receip.lpszAddress);
if Assigned(Receip.lpszName) then
StrDispose(Receip.lpszName);
MapiLogOff(MAPI_Session, Handle, 0, 0);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
mail: TStringList;
begin
mail := TStringList.Create;
try
mail.values["to"] := "Receiver-Email@test.xyz";
mail.values["subject"] := "Hello";
mail.values["body"] := "blah";
mail.values["body"] := "blah";
mail.values["attachment0"] := "C:\Test.txt";
// mail.values["attachment1"]:="C:\Test2.txt";
sendEMail(Application.Handle, mail);
finally
mail.Free;
end;
end;
← →
Djon007 © (2004-02-03 20:44) [2]<Soi>
нет мне нужно примерно так:
var
LMsg : TIdMessage;
Addr : TIdEMailAddressItem;
begin
LMsg.From.Text:="";
Addr:=LMsg.Recipients.Add();
Addr.Text:="";
LMsg.Subject:="";
<Здесь приложить файл к отправки как?>
← →
stone © (2004-02-04 14:06) [3]with LMsg do
begin
TIdAttachment.Create(LMsg.MessageParts, "C:\Test.txt");
← →
Djon007 © (2004-02-04 20:51) [4]благодорююю......
← →
DillerXX © (2004-02-04 21:11) [5]Я не понял или это я глючу или ещё что-то... Я создаю idSMTP а когда пишу
var
LMsg : TIdMessage;
то он говорит что не знает такого класса! Что это?
← →
Djon007 © (2004-02-04 21:17) [6]глюк:)
← →
Djon007 © (2004-02-05 20:48) [7]А как это дело правильно поставить
( TIdAttachment.Create(LMsg.MessageParts, "C:\Test.txt");)
чтоб работоло........
LMsg.From.Text:="";
Addr:=LMsg.Recipients.Add();
Addr.Text:="";
LMsg.Subject:="";
TIdAttachment.Create(LMsg.MessageParts, "C:\Test.txt");
E.Send(LMsg);
E.Disconnect();
Caption:="E-Mail Sending";
← →
dr Tr0jan © (2004-02-13 06:44) [8]А как удалить приаттаченный файл из письма?
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.03 c