Как da sendna attach
5 отговора
129 прегледа
Как da sendna attach
как най-лесно
в Делфи
се сендава маил с атач
използва се Оутлок експрес
и трябва да не чака потребителя да клика сенд бутона
колко ли не вартях това
ShellExecute(Handle,nil,pchar('mailto:ххх@ххх.ххх?subject=test&Body="C:\Test.ini"'),nil,'',0);
инеще и неще
а таман видях тарсачкатаkata че LongJohn е писал че така
май неможе
а как?????
в Делфи
се сендава маил с атач
използва се Оутлок експрес
и трябва да не чака потребителя да клика сенд бутона
колко ли не вартях това
ShellExecute(Handle,nil,pchar('mailto:ххх@ххх.ххх?subject=test&Body="C:\Test.ini"'),nil,'',0);
инеще и неще
а таман видях тарсачкатаkata че LongJohn е писал че така
май неможе
а как?????
Re: Как da sendna attach
За attach разправят че нямало начин, най-малкото щото файла трябва предварително да се кодира по някаква схема, например Base64.
Тук има демо на mailto:
[линк]
Тук се дискутира проблема:
[линк]
Интересно е да се знае каква е причината да не ползваш стандартните SMTP компоненти? Тогава може да се даде повече и по-полезна информация.
чети и дишай по-леко
Тук има демо на mailto:
[линк]
Тук се дискутира проблема:
[линк]
Интересно е да се знае каква е причината да не ползваш стандартните SMTP компоненти? Тогава може да се даде повече и по-полезна информация.
чети и дишай по-леко
Re: Как da sendna attach
Не че е най-лесния начин но поне е начин :)
[линк]
AquilaX
____________
умният знае кога да говори, мъдрият знае кога да мълчи
[линк]
AquilaX
____________
умният знае кога да говори, мъдрият знае кога да мълчи
Re: Как da sendna attach
Sys mailto opredeleno nyama da stane. Ako iskash da go prawish sys outlook, polzwaj MAPI. Imashe nyakyde edin komponent, kojto go praweshe towa, AfQuickMail maj se kazwashe, no sigurno ima i drugi, raztyrsi se malko i shte namerish.
Wsyshtnost towa s Outlook-a si e dosta golyama prostotiya, zashto prosto ne izpolzwash Indy componentite, stawa dosta po-lesno i sigurno :
Primer :
Iskame da pratim e-mail na Ivan Ivanov sys adres ivan.ivanov@ivanivanov.bg. Imame SMTP server mail.myisp.com, kojto ne ni iska SMTP authentication. Iskame da attachnem 2 fajla : c:\file1.txt i c:\file2.jpg, a w pismoto da pishe 'Zdrawej ivane, otwori si attachemntite' naprimer. Nie se kazwame Petyr petrov i adresa ni e petyr.petrov@petyrpetrov.bg :
Ako pyk provider-a ni iska SMTP authentication, togawa promenyame
na
Wsyshtnost towa s Outlook-a si e dosta golyama prostotiya, zashto prosto ne izpolzwash Indy componentite, stawa dosta po-lesno i sigurno :
unit SendMailWithAttachment;
interface
uses IdMessage, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdMessageClient, IdSMTP,Classes;
function SendTheMessage ( const aToName,aToEmail,aSubject,aBody,aFromName,aFromEmail,aSMTPServer : String;
aAttachments : TStrings;
aAuthentication : Boolean=false;aUserName : String='';aPassword : String='' ) : Boolean;
implementation
function SendTheMessage;
var aSMTP : TIdSMTP;
aMsg : TIdMessage;
i : Integer;
begin
aSMTP := TIdSMTP.Create(nil);
aMsg := TIdMessage.Create(nil);
with aSMTP do
begin
if aAuthentication then
begin
AuthenticationType := atLogin;
UserId := aUserName;
Password := aPassword;
end;
Host := aSMTPServer;
end;
with aMsg do
begin
with Recipients.Add do
begin
Address := aToEmail;
Name := aToName;
end;
From.Name := aFromName;
From.Address := aFromEmail;
Subject := aSubject;
Body.Text := aBody;
for i := 0 to aAttachments.Count-1 do
TIdAttachment.Create(MessageParts,aAttachments.Strings).ContentDisposition := 'attachment';
end;
Result := True;
try
aSMTP.Connect;
aSMTP.Send(aMsg);
aSMTP.Disconnect;
except
Result := false;
end;
aSMTP.Free;
aMsg.Free;
end;
end.
Primer :
Iskame da pratim e-mail na Ivan Ivanov sys adres ivan.ivanov@ivanivanov.bg. Imame SMTP server mail.myisp.com, kojto ne ni iska SMTP authentication. Iskame da attachnem 2 fajla : c:\file1.txt i c:\file2.jpg, a w pismoto da pishe 'Zdrawej ivane, otwori si attachemntite' naprimer. Nie se kazwame Petyr petrov i adresa ni e petyr.petrov@petyrpetrov.bg :
uses SendMailWithAttachment, Classes;
...
var T : TStringList;
...
T := TStringList.Create;
T.Add ( 'c:\file1.txt' );
T.Add ( 'c:\file2.jpg' );
if SendTheMessage ( 'Ivan Ivanov',
'ivan.ivanov@ivanivanov.bg',
'Hello',
'Zdrawej ivane, otwori si attachemntite',
'Petyr Petrov',
'petyr.petrov@petyrpetrov.bg',
'mail.myisp.com',
T ) then
ShowMessage ( 'Sent OK' )
else
ShowMessage ( 'Error Sending !!!' );
T.Free;
...
Ako pyk provider-a ni iska SMTP authentication, togawa promenyame
SendTheMessage ( 'Ivan Ivanov',
'ivan.ivanov@ivanivanov.bg',
'Hello',
'Zdrawej ivane, otwori si attachemntite',
'Petyr Petrov',
'petyr.petrov@petyrpetrov.bg',
'mail.myisp.com',
T )
na
SendTheMessage ( 'Ivan Ivanov',
'ivan.ivanov@ivanivanov.bg',
'Hello',
'Zdrawej ivane, otwori si attachemntite',
'Petyr Petrov',
'petyr.petrov@petyrpetrov.bg',
'mail.myisp.com',
T,true,'myusername','mypassword' )
Редактирано от killall на
Re: Как da sendna attach
да беше явно че трябва да се откажа от МАИЛТО:
тъкмо бях почнал да се боря с този компонент IdSMTP
и ти направо го "разцъка "
примера ти прави точно това дето ми трябва
само да отбележа че при мен(Делфи7)
UserId := aUserName; трябва да е Username := aUserName;
не можах да схвана защо...
_____________________
бях забравил че като се пейства код от Делфи
се губи когато имаш i в квадратни скоби заради Italic
та се почудих на 1 място(бях обеден че ми даваш работещ код) що така ама


тъкмо бях почнал да се боря с този компонент IdSMTP
и ти направо го "разцъка "
примера ти прави точно това дето ми трябва
само да отбележа че при мен(Делфи7)
UserId := aUserName; трябва да е Username := aUserName;
не можах да схвана защо...
_____________________
бях забравил че като се пейства код от Делфи
се губи когато имаш i в квадратни скоби заради Italic
та се почудих на 1 място(бях обеден че ми даваш работещ код) що така ама
Re: Как da sendna attach
Da be, i az sega zabelyazah che go nyama [ i ] . A na Delphi6 ( s koeto sym az ) e UserId, ne UserName. No nz, shtom si go podkaral nyakak ...