Avatar billede nop Nybegynder
12. september 2006 - 14:03 Der er 3 kommentarer og
1 løsning

MAPI - send mail

Hvordan sender jeg en HTML formateret e-mail.
Jeg kan kun finde (google) alm. tekst send, og et eller underligt oleAuto eksempel som godt nok virker men skal tillades i outlook.
Jeg vil gerne have Outlook dialogen op.

-----------------------------------------------------
1: Alm tekst:

function TfrmMailParser.SendMailMAPI(const Subject, Body, FileName, SenderName, SenderEMail,
                  RecepientName, RecepientEMail: String) : Integer;
var
  message: TMapiMessage;
  lpSender,
  lpRecepient: TMapiRecipDesc;
  FileAttach: TMapiFileDesc;
  SM: TFNMapiSendMail;
  MAPIModule: HModule;
begin
  FillChar(message, SizeOf(message), 0);
  with message do
  begin
    if (Subject<>'') then
    begin
      lpszSubject := PChar(Subject)
    end;
    if (Body<>'') then
    begin
      lpszNoteText := PChar(Body)
    end;
    if (SenderEMail<>'') then
    begin
      lpSender.ulRecipClass := MAPI_ORIG;
      if (SenderName='') then
      begin
        lpSender.lpszName := PChar(SenderEMail)
      end
      else
      begin
        lpSender.lpszName := PChar(SenderName)
      end;
      lpSender.lpszAddress := PChar('SMTP:'+SenderEMail);
      lpSender.ulReserved := 0;
      lpSender.ulEIDSize := 0;
      lpSender.lpEntryID := nil;
      lpOriginator := @lpSender;
    end;
    if (RecepientEMail<>'') then
    begin
      lpRecepient.ulRecipClass := MAPI_TO;
      if (RecepientName='') then
      begin
        lpRecepient.lpszName := PChar(RecepientEMail)
      end
      else
      begin
        lpRecepient.lpszName := PChar(RecepientName)
      end;
      lpRecepient.lpszAddress := PChar('SMTP:'+RecepientEMail);
      lpRecepient.ulReserved := 0;
      lpRecepient.ulEIDSize := 0;
      lpRecepient.lpEntryID := nil;
      nRecipCount := 1;
      lpRecips := @lpRecepient;
    end
    else
    begin
      lpRecips := nil
    end;
    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;
  MAPIModule := LoadLibrary(PChar(MAPIDLL));
  if MAPIModule=0 then
  begin
    Result := -1
  end
  else
  begin
    try
      @SM := GetProcAddress(MAPIModule, 'MAPISendMail');
      if @SM<>nil then
      begin
        Result := SM(0, Application.Handle, message, MAPI_DIALOG or
                    MAPI_LOGON_UI, 0);
      end
      else
      begin
        Result := 1
      end;

    finally
      FreeLibrary(MAPIModule);
    end;
  end;
  if Result<>0 then
  begin
    MessageDlg('Error sending mail ('+IntToStr(Result)+').', mtError, [mbOk],
              0)
  end;
end;
---------------------------------------------------------------

2: OleAutomatisation (kan HTML)

  Outlook := CreateOleObject('Outlook.Application');

  miMail := Outlook.CreateItem(olMailItem);
  miMail.Recipients.Add('billy@boy.com');
  miMail.Subject := 'Hello Bill';

  // use this to send a plain text email (all versions of Outlook)
  miMail.Body := 'Attached is the list of email addresses.';

  // alternatively send an HTML email (not in Outlook 97)
  miMail.HTMLBody := '<font color=red>Attached is the <b>list of email</b> addresses.</font>';

  //miMail.Attachments.Add('C:\temp\list.txt', EmptyParam, EmptyParam, EmptyParam);
  miMail.Send;


Jeg vil helst ikke bare købe en komponent...
Det må være bare lidt nemt at gøre når man kan sende alm. tekst på 100 linjer :o)
Avatar billede dkn Nybegynder
12. september 2006 - 15:05 #1
Har den ikke mulighed for at tilføje en header ?
så er det ellers bare at tilføje en linie med
Content-Type:text/html; charset="us-ascii"
Avatar billede nop Nybegynder
20. september 2006 - 14:55 #2
Lyder som det rigtige men hvor skal jeg sætte strengen ind?
Avatar billede nop Nybegynder
20. september 2006 - 19:16 #3
Sikkert noget her: http://www.delphi3000.com/articles/article_3947.asp?SK=mapi
Men jeg kunne ikke få det til at installere.
Avatar billede nop Nybegynder
23. juni 2007 - 16:51 #4
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester