Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Slanje email poruka iz Delphija

[es] :: Pascal / Delphi / Kylix :: Slanje email poruka iz Delphija

Strane: 1 2 3

[ Pregleda: 5351 | Odgovora: 47 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

popmilan76

Član broj: 295089
Poruke: 1337
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Slanje email poruka iz Delphija09.12.2018. u 09:31 - pre 64 meseci
Uspeo sam nesto,ne prijavljeje mi gresku od pre...Ali po grešci bih rekao da je u pitanju ono podesavanje gmail less secure,da se stavi na on,međutim nije.Evo koda:


IdSMTP1 := TIdSMTP.Create(nil);
try
SSLHandler := TIdSSLIOHandlerSocket.Create(IdSMTP1);
SSLHandler.SSLOptions.Method := sslvTLSv1;
SSLHandler.SSLOptions.Mode := sslmUnassigned;
SSLHandler.PassThrough := False;

IdMessage1 := TIdMessage.Create(IdSMTP1);
IdMessage1.From.Address := '[email protected]';
IdMessage1.Recipients.EMailAddresses := '[email protected]';
IdMessage1.Subject := Memo2.Lines.Text;
IdMessage1.Body.Text := Memo3.Lines.Text;

IdSMTP1.Host := 'smtp.gmail.com';
IdSMTP1.Port := 465;
IdSMTP1.Username := '[email protected]';
IdSMTP1.Password := 'xxxx';
IdSMTP1.IOHandler := SSLHandler;

IdSMTP1.Connect;
try
IdSMTP1.Send(IdMessage1);
finally
IdSMTP1.Disconnect;
end;
finally
IdSMTP1.Free;
end;
Prikačeni fajlovi
 
Odgovor na temu

popmilan76

Član broj: 295089
Poruke: 1337
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Slanje email poruka iz Delphija10.12.2018. u 16:59 - pre 64 meseci
Da li ovo slanje emaila preko gmaila može bez ssl-a da se uradi?
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Slanje email poruka iz Delphija10.12.2018. u 17:14 - pre 64 meseci
gmail koliko se secam zahteva SSL pristup tako da ne moze bez...
 
Odgovor na temu

popmilan76

Član broj: 295089
Poruke: 1337
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Slanje email poruka iz Delphija10.12.2018. u 17:22 - pre 64 meseci
Ne mogu da nadjem odgovarajuci ssl,a probao sam više njih,tako da sam se izgubio u ovome?U prethodnom kodu,kada izmenim port...izlazi mi poruka errorr with connection ssl,tako nešto?
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Slanje email poruka iz Delphija10.12.2018. u 18:56 - pre 64 meseci
Jesi li gmail nalog podesio da radi sa spoljnim pristupom? Probaj da li ti radi iz recimo Outlooka, Thunderbirda, imas na netu uputstvo kako treba podesiti gmail parametre da bi to radilo, za Indy je slicno.

Meni je sa ovavkim podesavanjima u Indiju radilo pre nekih 5 godina kad sam to poslednje probao:

Smtp.Port := 465;
Smtp.Username := User;
Smtp.Password := Pass;
Smtp.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(SMTP);
Smtp.UseTLS := utUseExplicitTLS;

 
Odgovor na temu

popmilan76

Član broj: 295089
Poruke: 1337
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Slanje email poruka iz Delphija10.12.2018. u 19:13 - pre 64 meseci
GMail sam podesio za spoljni pristup,jer to sam radio i sa TMail komponentom...Sve je i kod mene tako,samo sto nemam poslednje dve opcije...

Smtp.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(SMTP);
Smtp.UseTLS := utUseExplicitTLS;


Imam smtp komponentu ali nemam ova dva propertija...
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Slanje email poruka iz Delphija10.12.2018. u 22:06 - pre 64 meseci
> Imam smtp komponentu ali nemam ova dva propertija.

Mozda ti treba noviji Indy, ako koristis default koji ide uz D7, moras uraditi upgrade. Probaj da li poslednja Indy verzija radi uz D7 ako ne onda ti treba neka starija od 5 godina.
 
Odgovor na temu

popmilan76

Član broj: 295089
Poruke: 1337
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Slanje email poruka iz Delphija11.01.2019. u 20:20 - pre 63 meseci
Da ne bih otvarao novu temu,evo ovde cu posto je vezano za ovaj naslov...Slanje poruka preko gmaila traje mesec dva besplatno,pa posle toga izlazi poruka da je isteklo.Međutim,u nekom od fajlova za taj easendmailobj.dll,a u vc sharpu je,tj nekakav dokument,pise da se moze zameniti datum kreiranja tog dll,i u sharpu je to ovako...

public Form1()
{
InitializeComponent();
// change the EASendMailxx.dll match with your dll
File.SetLastWriteTime("EASendMail45.dll", DateTime.Now);

SmtpMail oMail = new SmtpMail("TryIt");


E,sada postavljam pitanje,kako taj datum kreiranja da promenim u delphiju,recimo kad god hocu da pokrenem program,da mi i ovo izmeni i da li je to uopste moguce tako kako sam ja zamislio?I onda bi to znacilo da ne bi nikad isteklo to...bilo bi free?
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Slanje email poruka iz Delphija11.01.2019. u 20:43 - pre 63 meseci
SetFileTime je WinApi funkcija koja to radi, svi pozivi drugih se na kraju verovatno svedu na nju.
Ako neces direktno nju onda pogledaj FileSetDate iz SysUtils ili TDirectory.SetDateTimeInfo ako koristis novije Delphije.
 
Odgovor na temu

popmilan76

Član broj: 295089
Poruke: 1337
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Slanje email poruka iz Delphija11.01.2019. u 21:10 - pre 63 meseci
Da,hvala,to je to,samo da pogledam vremenom,hoce li raditi.
 
Odgovor na temu

popmilan76

Član broj: 295089
Poruke: 1337
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Slanje email poruka iz Delphija22.03.2019. u 17:37 - pre 61 meseci
Evo ovde cu,da ne pravim novu temu...Slanje emaila preko default email klijenta,koristim ovu funkciju

//function SendMailMAPI(const Subject, Body, FileName, SenderName, SenderEMail,
//RecepientName, RecepientEMail: String) : Integer;

I lepo radi,kada je u pitanju jedna adresa,ali kada umetnem dve nece,razdvojim ih i zarezom,i tacka zarezom i neće pa neće?
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.cust.tele2.hr.



+4 Profil

icon Re: Slanje email poruka iz Delphija22.03.2019. u 20:08 - pre 61 meseci
Riješio sam to. Potražit ću sutra, za danas mi je dosta Delphi-a :)
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.cust.tele2.hr.



+4 Profil

icon Re: Slanje email poruka iz Delphija23.03.2019. u 10:52 - pre 61 meseci
Ne znam u čemu ti je problem. Sad sam pogledao u programu koji radi više od godinu dana i svakodnenvo šalje fin. izvješća na nekoliko e-mail adresa.
INDY mi je 10.6.2.5341
Adrese su mi u ini file-u. Kreiram varijablu i u nju dodajem adrese koliko god ih ima. Na kraju dobijem:

Code:

ToMail := '[email protected][email protected]';


Ono što je zanimljivo i nisam do sada primjetio:

napravim:
Code:

var IdM: TIdMessage;
...
IdM.Recipients.EMailAddresses := ToMail;


Nakon toga IdM.Recipients.EMailAddresses i ToMail nisu isti !!! U IdM.Recipients.EMailAddresses je točka-zarez zamjenjena sa zarezom tako da su nove mail adrese koji su u Recipients:
[email protected], [email protected]'



 
Odgovor na temu

popmilan76

Član broj: 295089
Poruke: 1337
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Slanje email poruka iz Delphija23.03.2019. u 12:13 - pre 61 meseci
Imam var koji se zove statuspri,i u njega stavim adotable1email1.value + ',' + adotable1email2.value i on ga prikaze u TO ,ali neće da šalje...I umesto zareza sam stavio i tačka,zarez ali isto...Da li bih mogao da u ovu gore funkciju dodam onu stavku CC i kako?
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.cust.tele2.hr.



+4 Profil

icon Re: Slanje email poruka iz Delphija23.03.2019. u 13:38 - pre 61 meseci
Ovo je moja procedura. Izvukao sam dijelove koji trebaju (valjda nisam nešto preskočio) jer je napravljena kao zaseban thread u kom se kreira i PDF izvješća koji se šalje.

idS: TIdSMTP;
IdM: TIdMessage;
IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
ToMail: string;

tMyClass.Parametri je moja klasa koja čita iz ini file-a podatke.
Da li verzija indy-a koju koristiš ima veze?

Code:

            IdS.Host := tMyClass.Parametri.ParamByName['MAIL_HOST'].AsString;
            IdS.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
            IdS.UseTLS := utUseRequireTLS;
            IdS.Port := tMyClass.Parametri.ParamByName['MAIL_PORT'].AsInteger; //587 ;
            IdS.UserName :=  tMyClass.Parametri.ParamByName['MAIL_USERNAME'].AsString;
            IdS.Password  := tMyClass.Parametri.ParamByName['MAIL_PASSWORD'].AsString;

// kreiranje prijemnih mail adresa
            MaliBr := 1;
            while tMyClass.Parametri.SeekParam('MAIL_ADRESA_TO_' + MaliBr.ToString) do begin
               if ToMail <> '' then ToMail := ToMail + '; ';
               ToMail := ToMail + tMyClass.Parametri.ParamByName['MAIL_ADRESA_TO_' + MaliBr.ToString].AsString;
               Inc(MaliBr);
            end;

               IdM.Clear;
               idm.ContentType := 'multipart/related; charset=win-1250';
               IdM.Body.Clear;
               IdM.Body.Append('Izvješće o prometu na dan: ' + DateTimeToStr(dat));
               IdM.Encoding := meMime;
               idm.ContentType := 'multipart/text; charset=win-1250';
               IdM.From.Name := FirmaIme;
               IDM.From.Address := tMyClass.Parametri.ParamByName['Mail_Adresa_From'].AsString;
               IdM.Recipients.EMailAddresses := ToMail;
               IdM.Subject := 'Izviješče o prometu na dan: ' + DateTimeToStr(Dat);

                IdS.Connect;

                  Attachment := TIdAttachmentfile.Create(Idm.MessageParts,dir);
                  Attachment.ContentDisposition := 'attachment';
                  Attachment.ContentType := 'text/xml';
                  Attachment.FileName := dir;
                  Attachment1 := TIdAttachmentfile.Create(Idm.MessageParts,rac);
                  Attachment1.ContentDisposition := 'attachment';
                  Attachment1.ContentType := 'text/xml';
                  Attachment1.FileName := Rac;
                  Attachment2 := TIdAttachmentfile.Create(Idm.MessageParts,Spec);
                  Attachment2.ContentDisposition := 'attachment';
                  Attachment2.ContentType := 'text/xml';
                  Attachment2.FileName := Spec;
                  IdS.Send(IdM);             
                  Attachment.Free;
                  Attachment1.Free;
                  Attachment2.Free;

                     IdS.Disconnect;

I ovo su property Indy controla:
Code:

  object idS: TIdSMTP
    IOHandler = IdSSLIOHandlerSocketOpenSSL1
    SASLMechanisms = <>
    UseTLS = utUseExplicitTLS
    Left = 408
    Top = 160
  end
  object IdM: TIdMessage
    AttachmentEncoding = 'MIME'
    BccList = <>
    CharSet = 'windows-1250'
    CCList = <>
    Encoding = meMIME
    FromList = <
      item
      end>
    Recipients = <>
    ReplyTo = <>
    ConvertPreamble = True
    Left = 488
    Top = 160
  end
  object IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL
    Destination = ':25'
    MaxLineAction = maException
    Port = 25
    DefaultPort = 0
    SSLOptions.Mode = sslmUnassigned
    SSLOptions.VerifyMode = []
    SSLOptions.VerifyDepth = 0
    Left = 536
    Top = 264
  end
 
Odgovor na temu

popmilan76

Član broj: 295089
Poruke: 1337
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Slanje email poruka iz Delphija23.03.2019. u 15:04 - pre 61 meseci
Ja koristim funkciju ,ovu:

function SendMailMAPI(const Subject, Body, FileName, SenderName, SenderEMail,
RecepientName, RecepientEMail: String) : Integer;

I sad u delu RecepientEMail,u kodu stavim value1 + ',' + value2....ili value1 + ';' + value2,isto je,popuni polje TO u mailu,ali ne šalje,grešim u nekoj gluposti ali ne znam gde.
 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 307



+18 Profil

icon Re: Slanje email poruka iz Delphija23.03.2019. u 16:44 - pre 61 meseci
Ukucaj u goglu:

"RecipArray: array of TMapiRecipDesc;"

sa navodnicima.

Prvi link koji izbaxi gugl je tema i kojoj pise o nizu primaoca.

Inace ne koristim mapi. Samo dajem primer da se moze sve izguglati.
Jedino treba razmisliti sta treba ukucati u gugl da izbaci pravi link.
 
Odgovor na temu

popmilan76

Član broj: 295089
Poruke: 1337
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Slanje email poruka iz Delphija24.03.2019. u 14:57 - pre 61 meseci
To mi menja mnogo koda,a već sam počeo sa ovom funkcijom:

function SendMailMAPI(const Subject, Body, FileName, SenderName, SenderEMail,
RecepientName, RecepientEMail: String) : Integer;
var
message: TMapiMessage;
lpSender,
lpRecepient,lpcc: TMapiRecipDesc;
FileAttach: TMapiFileDesc;
SM: TFNMapiSendMail;
MAPIModule: HModule;
begin
FillChar(message, SizeOf(message), 0);
with message do
begin
if (Subject<>'') then
begin
lpszSubject := PChar(Subject)
end;
if (Body<>'') then
begin
lpszNoteText := PChar(Body)
end;
if (SenderEMail<>'') then
begin
lpSender.ulRecipClass := MAPI_ORIG;
if (SenderName='') then
begin
lpSender.lpszName := PChar(SenderEMail)
end
else
begin
lpSender.lpszName := PChar(SenderName)
end;
lpSender.lpszAddress := PChar('SMTP:'+SenderEMail);
lpSender.ulReserved := 0;
lpSender.ulEIDSize := 0;
lpSender.lpEntryID := nil;
lpOriginator := @lpSender;
end;
if (RecepientEMail<>'') then
begin
lpRecepient.ulRecipClass := MAPI_to;
lpcc.ulRecipClass := MAPI_to;
if (RecepientName='') then
begin
lpRecepient.lpszName := PChar(RecepientEMail);

end
else
begin
lpRecepient.lpszName := PChar(RecepientName)
end;
lpRecepient.lpszAddress := PChar('SMTP:'+RecepientEMail);
lpcc.lpszAddress := PChar('SMTP:'+RecepientEMail);
lpRecepient.ulReserved := 0;
lpRecepient.ulEIDSize := 0;
lpRecepient.lpEntryID := nil;
nRecipCount := 1;
lpRecips := @lpRecepient;
end
else
begin
lpRecips := nil
end;
if (FileName='') then
begin
nFileCount := 0;
lpFiles := nil;
end
else
begin
FillChar(FileAttach, SizeOf(FileAttach), 0);
FileAttach.nPosition := Cardinal($FFFFFFFF);
FileAttach.lpszPathName := PChar(FileName);
nFileCount := 1;
lpFiles := @FileAttach;
end;
end;
MAPIModule := LoadLibrary(PChar(MAPIDLL));
if MAPIModule=0 then
begin
Result := -1
end
else
begin
try
@SM := GetProcAddress(MAPIModule, 'MAPISendMail');
if @SM<>nil then
begin
Result := SM(0, Application.Handle, message, MAPI_DIALOG or
MAPI_LOGON_UI, 0);
end
else
begin
Result := 1
end;

finally
FreeLibrary(MAPIModule);

end;

if Result<>0 then
begin
MessageDlg('Error sending mail ('+IntToStr(Result)+').', mtError, [mbOk],
0)
end;
end;
end;


I posle pošto pošaljem poruku,kada hoću nešto u svopjoj aplikaciji da uradim,ne mogu jer mi ispisuje grešku,nešto kao could not find file c\program files ....mapi\1032\baza.mdb



S tim,sto kod ovog poslednjeg slucaja izlazi oleexceptions ,file not found,i kada u taj folder mapi,postavim,bazu,onda radi kako treba?Jer mora to tako ili nesto nije uradjeno kako treba?

[Ovu poruku je menjao popmilan76 dana 24.03.2019. u 22:33 GMT+1]
 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 307



+18 Profil

icon Re: Slanje email poruka iz Delphija25.03.2019. u 10:08 - pre 61 meseci
> Jer mora to tako ili nesto nije uradjeno kako treba?

Nije uradjeno kako treba izbor funkcije her ne mozes da je osposobis da posalje mejl.

Jednostavnje bi bilo da uzems kod koji je Franjo posotvao jer je Franjo postovao kod koji radi.
 
Odgovor na temu

popmilan76

Član broj: 295089
Poruke: 1337
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Slanje email poruka iz Delphija25.03.2019. u 10:49 - pre 61 meseci
Ok,sad ću probati,mada mislim da je nesto kod mene,ili je problem u outlook?

Ipak neću moći,jer moj IDs nema usetls property,i verovatno još nesto...
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Slanje email poruka iz Delphija

Strane: 1 2 3

[ Pregleda: 5351 | Odgovora: 47 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.