Wiadomości e-mail wysyłane pod Indy 8 docierają z pustym ciałem

Wiadomości e-mail wysyłane pod Indy 8 docierają z pustym ciałem
Thunderlane
  • Rejestracja:prawie 12 lat
  • Ostatnio:ponad 10 lat
  • Postów:30
0

Zaczęło się od tego, że potrzebuję programu, który automatycznie wysyłałby wiadomość e-mail w formacie HTML wraz z załącznikiem, co planuję osiągnąć przy pomocy klas TIdSMTP i TIdMessage pakietu Indy w wersji 8.0. Jako, że e-maila z załącznikiem nie mogę wysłać po prostu jako wiadomość typu text/html bo wtedy przesyła html jako czysty tekst (z gołymi tagami i w ogóle), konieczne jest umieszczenie elementów e-maila (treść, załącznik) w kolekcji MessageParts, co próbowałem zrealizować przy pomocy poniższego kodu:

Kopiuj
var
  txt : TIdText;
  att : TIdAttachment;
begin
  IdMessage1.ContentType := 'multipart/mixed';
  IdMessage1.MessageParts.Clear;
  IdMessage1.Body.Clear;
  IdMessage1.From.Name := 'tu nadawca';
  IdMessage1.From.Address := 'adres nadawcy';
  IdMessage1.Recipients.EMailAddresses := 'adres odbiorcy';
  IdMessage1.Subject := 'temat';
  txt := TIdText.Create(IdMessage1.MessageParts, nil);
  txt.ContentType := 'text/html';
  txt.Body.LoadFromFile('plik htm z treścią maila'); // dla txt.Body.Text := 'cośtam' jest to samo
  att := TIdAttachment.Create(IdMessage1.MessageParts, 'załącznik');
  att.ContentType := 'typ załącznika';
  att.FileName := 'nazwa załącznika';
  IdSMTP1.UserName := 'użytkownik';
  IdSMTP1.Password := 'hasło';
  IdSMTP1.Host :=  'serwer';
  IdSMTP1.Port := 587;
  IdSMTP1.AuthenticationType := atLogin;
end;

Problem polega na tym, że chociaż mail dociera do nadawcy prawidłowo i nie brakuje w nim załącznika, to z jakiegoś powodu w ogóle nie wyświetla treści, tj. nawet nie bez formatowania html ale wcale, mimo że praktycznie każdy poradnik na ten temat w necie opisywał to właśnie w ten sposób jak w powyższym kodzie, tj. umieścić treść w MessageParts jako instancję TIdText. Miał ktoś może do czynienia z tą biblioteką? Po mojemu to w tym kodzie są praktycznie wszystkie te polecenia co w każdym znalezionym na ten temat przykładzie, ale skoro maile nadal dochodzą puste to coś musi w tym TIdText brakować...

PS. Korzystam z Delphi 7.

edytowany 1x, ostatnio: Thunderlane
olesio
  • Rejestracja:około 17 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Szczecin
  • Postów:4191
0

Tylko @kAzek chyba będzie to umial ogarnąc. Ja dysponuje jedynie kodem z użyciem pakietu Synapse, który działa mi prawidłowo. Załączniki docierają. I na poczta.o2.pl idzie je zapisać bez problemów z e-maila.


Pozdrawiam.
KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:Gorlice
1

Indy 8 chyba nikt na świecie nie ogarnia. Jak chcesz pomocy to zainstaluj nowe Indy (instrukcja instalacji http://4programmers.net/Forum/Delphi_Pascal/239271-zainstalowanie_indy_10_na_delphi_7_pe?p=1066577#id1066577 ).


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
flowCRANE
Ogarnia pewnie twórca, ale pewności nigdy nie ma ;)
KA
@furious programming twórcy Indy 8 chyba wyginęli wraz z dinozaurami a że Indy nie jest kompatybilne wstecz to nikt nie ogarnia starych wersji.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.