Merhaba..
- Gönderdiğiniz mailden anlaşıldığı üzere hata su yüzüne çıktı.
- Deneyerek gönderilmiş örneklerin sizde çalışmamasının nedeni örnekleri aynen uygulamayarak, kendi kodlarınızla karştırıp kendinize göre denemeler gerçekleştirmiş, sanki "bizim gönderdiğimiz örnekler sizde çalışmıyor" şeklinde sonuçlar anlaşılmıştır.
Kural : TIdMessage.Body özelliğini; birden fazla bölümden oluşacaksa, bölümlerinden her biri sadece ve sadece
ContentType'ı
'text/....' olan içerik taşıyanları yani herhangi başka türden ek
taşımayan durumlarda kullanılır.
- Siz HTML için
'text/html' demişsinizdir ama resim de eklemişiniz. Bu durumda HTML kaynak kod IdMessage Body olarak değil de Attachment'a eklenmeliydi.
- Aşağıda bir HTML mail gönderme örneği hazırladım. Bunu kendinize göre uygulayın. Örnek içeriğinde HTML içerisinde nasıl
CID (
ContentID) ekleneceğini de örnekledim. Delphi'deki SQL sorgularındaki parametrik yapının benzeridir.
- Biliyorsunuz resimlerinizi eklediğinizde mesajın sonunda gelir. Bu şekilde mesajın dilediğiniz bir yerinde görüntülenmesi sağlanır.
- Ek Bilgi, hesabız SSL destekli ise (örneğin GMail hesabı) OpenSSL DLL'lerinin program klasörüne eklenmesi ve bazı ayar değişiklikleri gerekecektir.
- Örnekte her nesne
Kod: Tümünü seç
// Uses'a Eklenecekler : IdMessage, IdSMTP
Var
IdSMTP : TIdSMTP;
IdMessage : TIdMessage;
HTMLpart : TIdText;
Attachment : TIdAttachment;
begin
// Mail Server Ayarları
IdSMTP := TIdSMTP.Create(Nil);
IdSMTP.AuthenticationType := atLogin;
IdSMTP.Host := 'mail.com.tr';
IdSMTP.Username := 'isim';
IdSMTP.Password := 'şifre';
IdSMTP.Port := 25;
// Mail Body işlemleri
IdMessage := TIdMessage.Create( nil );
IdMessage.From.Name := 'Muharrem ARMAN';
IdMessage.From.Address := 'mrmarman@hotmail.com';
IdMessage.Recipients.Add;
IdMessage.Recipients[0].Name := 'DivXTurk';
IdMessage.Recipients[0].Address := 'divxturk@gmail.com';
IdMessage.Subject := 'eMail Konusu';
IdMessage.ContentType := 'multipart/mixed';
HTMLpart := TIdText.Create( IdMessage.MessageParts );
HTMLpart.ContentType := 'text/plain';
HTMLpart.Body.Text := '';
HTMLpart.ContentTransfer := 'quoted-printable';
HTMLpart := TIdText.Create( IdMessage.MessageParts );
HTMLpart.ContentType := 'text/html';
HTMLpart.ContentTransfer := 'quoted-printable';
With HTMLpart.Body do begin
Clear;
Add('<html>');
Add('<head>');
Add('<title>Test</title>');
Add('</head>');
Add('<body>');
Add('<h1>hede hödö</h1>');
Add('<h2>Delphi Türkiye</h2>');
Add('<a href="www.delphiturkiye.com/forum">delphiturkiye forum</a>');
Add('<center><img src="cid:BizimResim.BMP"></center>');
Add('<a href="www.delphiturkiye.com/forum">delphiturkiye forum</a>');
Add('</body>');
Add('</html>');
end;
Attachment := TIdAttachment.Create( IdMessage.MessageParts, 'EMAIL1.bmp' );
Attachment.ContentType := 'image/bmp';
Attachment.ContentDisposition := 'attachment';
Attachment.ExtraHeaders.Values['content-id'] := 'BizimResim.BMP';
IdSMTP.Connect;
IdSMTP.Authenticate;
IdSMTP.Send( IdMessage );
IdSMTP.Disconnect;
Attachment.Free;
IdMessage.Free;
IdSMTP.Free;
end;
- Artık kendi çözümünüzü üretebilirsiniz. Başarılar...