Cześć, męczę się z tym już drugi dzień, wertuje Internet i nadal nic.
Używam INDY 10.0.20. O ile nie mam żadnego problemu z wysłaniem zwykłego maila(plain text), nie mam też problemu z wysłaniem maila z załącznikiem, to nie mogę sobie dać rady z wysłaniem maila, w którym obrazy są wtopione w jego treść. Próbowałem już miliardy kombinacji i efekt jest taki, że na jeden serwer w ogóle mail nie dochodzi, na drugi dochodzą dziwne rzeczy.
Kod jest następujący (założenie, że jest tylko jeden obraz):
var
SMTPServer: TIDSMTP;
IDMsg: TIDMessage;
begin
IDMsg:=TIDMessage.Create;
IDMsg.ClearHeader;
IDMsg.ContentType='multipart/mixed';
//dodawanie załącznika
with TIDAttachmentFile.Create(IDMsg.MessageParts, 'D:\plik.jpg') do
begin
ContentType='image/jpeg';
ContentDisposition='inline';
ContentID:='0';
end;
IDMsg.Subject:='Temat';
IDMsg.Body.Text:='Treść '+#13#10+'<img src="cid:0" />';
IDMsg.BccList.EMailAddresses:='prawdziwy_adres@mail.com';
IDMsg.From.Name:='Juhas';
IDMsg.From.Address:='mail@juhasa.net';
IDMsg.ReplyTo.EmailAddresses:='mail@juhasa.net';
SMTPServer:=TIDSMTP.Create;
//tu wypełniam pola SMTPServer
SMTPServer.Connect;
SMTPServer.Send(IDMsg);
SMTPServer.Disconnect;
end;
Już nie wiem, co mam robić. Siedzę, analizuję nagłówki, czytam w necie i niby wszystko powinno być ok, a nie jest. Treść wiadomości umieszczałem też między znacznikami: <html><body>
i </body></html>
Nic to nie daje.
Zaczynam wątpić w Indy. Jeśli Wam też nie uda się wysłać takiego maila, to może znacie jakiś alternatywny sposób wysyłania maili? Jakiś komponent, biblioteka, cokolwiek. Wymaganie jest tylko takie, żeby to było darmowe(również do komercyjnego użytku) i, żeby działało na każdym komputerze z Windowsem.
Pytanie poza konkursem:
Wszędzie w necie znajduje kody z użyciem "with TIDAttachmentFile.Create". Zastanawia mnie to dość mocno. Czy to jest jakaś konkretna specyfika? Czy IDMessage potem czyści te obiekty, czy prowadzi to po prostu do memory leaków?