Trimiterea e-mailurilor din codul delphi în mediul Citrix

clienții noștri folosesc cea mai mare parte MS Outlook, dar, uneori, și alți clienți ne dau probleme în crearea unei noi ferestre de mail de la cod.

am încercat, de asemenea, să implementăm o alternativă mailto: dar folosind atașamentul = "C: \ filename.txt" eșuează.

făcând clic dreapta pe un fișier utilizând trimiterea la poșta electronică recepționează mai ales oricum, dar nu am găsit niciodată o modalitate de a face acest lucru prin cod.

există alte modalități de a crea o nouă e-mail cu un atașament de fișier?

am experimentat, de asemenea, că întregul accident de aplicație din cauza codului de hărți, eroarea ferestrei destul de des dă o eroare arătând astfel:

Faulting module name: dhcpcsvc.DLL, version: 6.1.7600.16385, time stamp: 0x4a5bd9b5
Exception code: 0xc0000005
Fault offset: 0x00001d00
Faulting process id: 0x868
Faulting application start time: 0x01ca7fbc86a3e836
Faulting application path: C:\Program Files (x86)\Microsoft Office\OFFICE11\OUTLOOK.EXE
Faulting module path: C:\Windows\system32\dhcpcsvc.DLL
Report Id: c60fa358-ebaf-11de-8b4f-0026b9486d93
1
Ați putea atașa codul actual Delphi?
adăugat autor Jørn E. Angeltveit, sursa
pastebin.com/sMHAEEwP aici este o pastă rapidă, nu reușește la linia 90 - 95 cu parametri greși
adăugat autor Plastkort, sursa

2 răspunsuri

See: How can I simulate ‘Send To...’ with Delphi?

Codul arată modul în care o nouă fereastră "Compose mail" poate fi deschisă cu un fișier deja atașat, simulând acțiunea implicită a sistemului de operare pentru meniul contextual shell "Trimiteți la ...".

0
adăugat
Am găsit o pagină pe care o văd puțin tradusă la Delphi --- mikejustin.wordpress.com/2009/07/03/… ---- Am încercat să modific acest lucru ușor pentru a accepta doar un fișier folosind OpenDialog. pastebin.com/ZXpFrPET dar primesc un mesaj de eroare care spune "Parametri greși" pe următoarea linie (neîncărcat) OleCheck (Folder.ParseDisplayName (0, nil, PWideChar (WideString (Fișiere [i])),
adăugat autor Plastkort, sursa

există alte modalități de a crea o e-mail nou cu un atașament de fișier?

Da. Puteți trimite direct utilizând Indy: TIdSMTP + TIdMessage + TIdAttachmentFile.

Cod simplu:

IdMessage := TIdMessage.Create(nil);
IdSMTP := TIdSMTP.Create(nil);
try
    IdMessage.Subject := 'YourMessageSubject';
    IdMessage.Recipients := '[email protected],[email protected]';
    IdMessage.CCList := ...
    IdMessage.BccList := ...
    IdMessage.Body.Text := 'YourMessageText';
    IdSMTP.Host := 'smtp.example.com';
    i := 1;
    TIdAttachmentFile.Create(IdMessage.MessageParts, TFileName('YourAttachmentFileName'));
    try
      IdSMTP.Connect;
      IdSMTP.Send(IdMessage);
    finally
      IdSMTP.Disconnect;
    end;
finally
    IdMessage.Free;
    IdSMTP.Free;
end;
0
adăugat
Dezavantaj: nu deschide o fereastră de compunere care să permită editarea textului sau adăugarea destinatarilor din agendă.
adăugat autor mjn, sursa
Soluția mea (care de fapt este doar o combinație de alte două resurse) nu depinde de asociația comenzii mailto - vedeți
adăugat autor mjn, sursa
@Plastkort consultați stackoverflow.com/a/10850543/80901
adăugat autor mjn, sursa
@mjn aveți o versiune tradusă în Delphi?
adăugat autor Plastkort, sursa
@mjn: Este adevărat. Dacă intenția reală este de a utiliza abordarea "MailTo", soluția dvs. este mai bună. Dacă intenția este de a trimite poșta, indiferent dacă mașina client are sau nu comanda asociată comenzii "MailTo" cu un client de poștă și, de asemenea, configurată corect, abordarea directă de trimitere ar putea fi mai adecvată.
adăugat autor jfoliveira, sursa