Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Tworzenie emaila z załącznikami Delphi

Vielebny 21 Maj 2010 11:11 1827 3
  • #1 21 Maj 2010 11:11
    Vielebny
    Poziom 9  

    Witam
    Potrzebuję pomysłu jak stworzyć emaila w Delphi tak żeby otworzył się kompletny w Outlook Expresie jako nowy mail do wyslania z wpisanymi od, do, treścią i załącznikami, a wysłaniem zajął się Outlook Express (tak chyba prosciej).
    Załączniki stałe umieszczone w katalogu programu, wybierane przez CheckBoxy.
    Próbowałem edycją pliku eml ale załączniki musiałem pierw kodować zeby weszly do MIME co uniemozliwia uzytkownikowi w prosty sposob zmienic tresc jakiegokolwiek zalacznika bo wszystkie muszą być w programie zapisane jako pliki txt zakodowane np base64.
    Potrzebuje prostego wskaznika na pliki doc, pdf itp ktore by byly załączane do maila.

    0 3
  • #2 21 Maj 2010 11:25
    utak3r
    Poziom 25  

    Nie wiem, czy prościej...
    Ale jeżeli chcesz to zrobić tak, jak napisałeś, to potrzebujesz technologii automatyzacji OLE. Od strony praktycznej będzie to wyglądało tak, że programowo odpalasz outlooka i wpisujesz dane do poszczególnych okienek.

    0
  • #3 21 Maj 2010 11:43
    arnoldziq
    Moderator Programowanie

    Można to bez problemu zrobić w Delphi, ale jest jedna , dość poważna komplikacja.
    Outlook traktuje takie e-maile jako część działania wirusa i musisz dwukrotnie potwierdzić jego wysłanie :(
    Może można dopracować tę procedurę, aby uniknąć tego typu problemów, ale są łatwiejsze sposoby na wysyłanie e-maili i nie chciało mi się dłubać :).

    Code:
    const
    
      olMailItem = 0;
    var
      Outlook: OleVariant;
      vMailItem: variant;
    begin
      if trim(edtKey.Text)='' then exit;
      try
        Outlook := GetActiveOleObject('Outlook.Application');
      except
        Outlook := CreateOleObject('Outlook.Application');
      end;
      vMailItem := Outlook.CreateItem(olMailItem);
      vMailItem.Recipients.Add('konto1@****.co.uk');
      vMailItem.Recipients.Add('konto2@****.co.uk');
      vMailItem.Recipients.Add('konto3@****.co.uk');
      vMailItem.Recipients.Add('konto4@****.co.uk');

      vMailItem.Subject := 'Jakis tam tytul ';
      vMailItem.Body   := ' Pierwsza linia'+#13+
                           ' Druga linia'+#13+
                           ' Trzecia linia'+#13;
    //  vMailItem.Attachments.Add('C:\temp\sample.txt');
      vMailItem.Send;

      VarClear(Outlook);
    end;

    Wesołej zabawy.

    0
  Szukaj w 5mln produktów