Outlook Exprees ile HTML mail gönderme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
CengRecep
Üye
Mesajlar: 10
Kayıt: 22 Oca 2004 05:32

Outlook Exprees ile HTML mail gönderme

Mesaj gönderen CengRecep »

Merhabalar.

Arkadaşlar, O.Express vasitasıyle delphide yazdığım program ile mail gönderebiliyorum. Fakat, maillerime HTML sayfa eklemek istiyorum. Dosya eki olarak değil, mailin kendi içinde göndermek istiyorum. bu HTML in içinde resimde olacak. Ama bunu bir türlü başaramadım. HTML sayfanın kodunu mailin içeriği olarak göndermem işe yaramadı. O.Expressde mail alıp gönderme ile ilgili ayarlarla oynadım ama fayda etmedi.

Bu sorunu nasıl çözebilirim.
Şimdiden teşekkürler...
Kullanıcı avatarı
safak
Şafak EBESEK
Mesajlar: 165
Kayıt: 05 Ağu 2003 04:39
Konum: Istanbul
İletişim:

Mesaj gönderen safak »

Daha önce çalışmıştım.
Tam olarak hatırlamıyorum.
Yöntemi aktarabilirim.

Outlook 'un yaptığı haberleşmeyi izlemiştim.
-önce Normal mesajlar için
-sonra HTML hazırlanan mesajlar için

Mail tanımları sırasında, yanılmıyorsam mail başlığında , mesajın tip hakkında bir bilgi aktarılıyor. Orada HTML gibi bir ek var. Farkı izlerseniz görebilirsiniz.

Buradan tespit ettiğim farka göre mesaj metnini hazırlamıştım.
Umarım işinize yarar.

Kolay Gelsin,
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

outlook express ile değil de indy ile yapmıştım. http://www.indyproject.org adresinden örnekleri indirirsen örnekler içinde vardı zaten.

Bu arada mapi (oe) kullanarak mail göndermekle ilgili bir konu forumda geçmişti ama normal mi, html mi hatırlayamıyorum.

Kolay gelsin.
Kullanıcı avatarı
CengRecep
Üye
Mesajlar: 10
Kayıt: 22 Oca 2004 05:32

Kullandıgim kodda html ile ilgili bir eklenti bulamadıim

Mesaj gönderen CengRecep »

Kod: Tümünü seç

function TForm1.SendMails(const Subject, Body, FileName,
                  SenderName, SenderEMail,
                  RecipientName, RecipientEMail: string): Integer;
var
  Message: TMapiMessage;
  lpSender, lpRecipient: TMapiRecipDesc;
  FileAttach: TMapiFileDesc;

  SM: TFNMapiSendMail;
  MAPIModule: HModule;
begin
  FillChar(Message, SizeOf(Message), 0);
  with Message do
    begin
      if (Subject <> '') then lpszSubject := PChar(Subject);
      if (Body <> '') then lpszNoteText := PChar(Body);
      if (SenderEmail <> '') then
         begin
           lpSender.ulRecipClass := MAPI_ORIG;
           if (SenderName = '') then lpSender.lpszName := PChar(SenderEMail)
                                else lpSender.lpszName := PChar(SenderName);
           lpSender.lpszAddress := PChar(SenderEmail);
           lpSender.ulReserved := 0;
           lpSender.ulEIDSize := 0;
           lpSender.lpEntryID := nil;
           lpOriginator := @lpSender;
         end;
      if (RecipientEmail <> '') then
         begin
           lpRecipient.ulRecipClass := MAPI_TO;
           if (RecipientName = '') then lpRecipient.lpszName := PChar(RecipientEMail)
                                   else lpRecipient.lpszName := PChar(RecipientName);
           lpRecipient.lpszAddress := PChar(RecipientEmail);
           lpRecipient.ulReserved := 0;
           lpRecipient.ulEIDSize := 0;
           lpRecipient.lpEntryID := nil;
           nRecipCount := 1;
           lpRecips := @lpRecipient;
         end
         else lpRecips := nil;

      if (FileName = '') then
         begin
           nFileCount := 0;
           lpFiles := nil;
         end
       else
         begin
           FillChar(FileAttach, SizeOf(FileAttach), 0);
           FileAttach.nPosition := Cardinal($FFFFFFFF);
           FileAttach.lpszPathName := PChar(FileName);
           nFileCount := 1;
           lpFiles := @FileAttach;
         end;
   end; //with Message do

  MAPIModule := LoadLibrary(PChar(MAPIDLL));
  if MAPIModule = 0 then
     Result := -1
  else
    try
      @SM := GetProcAddress(MAPIModule, 'MAPISendMail');
      if @SM <> nil then
         begin                                          //MAPI_DIALOG or
           Result := SM(0, Application.Handle, Message, MAPI_LOGON_UI, 0);
         end
      else
          Result := 1;
    finally
      FreeLibrary(MAPIModule);
    end; //try
  if Result <> 0 then
     MessageDlg('Mesaj gönderilemedi (' + IntToStr(Result) + ').',mtError, [mbOK], 0)
  else
     ListBox1.Items.Add(RecipientEMail + ' : Başarılı oldu');
  Update;
end;
Kullanımı :
SendMails('Deneme amaçlı maildir', Memo1.Text, '', '', 'duyuru@a.com', '', s@s.com);
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

Yukarıdaki kodu denedim çok güzel. Yalnız ben bunu html mail içinde yapmak istiyorum acaba bunu yapabilen varmı?
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

sorunu çözdüm lpszMessageType:=pchar('html');
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

yalnız bir de outlook express de kayıtlı mailleri (eml) yollamak istiyorum onu nasıl yaparım?
Cevapla