Announcement

Collapse
No announcement yet.

DELPHI5: eMail per MAPI senden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DELPHI5: eMail per MAPI senden

    Hallo Delphianer,
    ich habe eine Anwendung geschrieben, mit der ich eMails versende. In dieser Anwendung baue ich über die Portadresse, den Hostnamen und ggf. über den Benutzernamen eine Verbindung zum Mailserver auf.

    Nun habe ich erfahren, daß es mit den Routinen aus der MAPI32.DLL wesentlich einfacher ist, eMails zu versenden.

    Hättest Du einen Tip bzw. Hinweis für mich, wo ich weiterführende Informationen zum Thema Delphi und MAPI finde ?

    Mit freundlichen Grüßen
    Uwe

  • #2
    Hallo,

    auch MAPI wird im <i>Microsoft Platform SDK</i> bzw. in der <i>MSDN-Library</i> umfangreich dokumentiert. Das folgende Beispiel stammt aus einer DLL, die eine universell nutzbare eMail-Funktion über MAPI abbildet:
    <pre>
    unit E_UnitMAPI;

    interface

    function E_SendMail(const pRecipient, pTitle, pMsg: PChar;
    iRECEIPT : Integer): Integer; stdcall;

    implementation

    uses
    SysUtils, Classes, Windows, MAPI;

    type
    TMESSAGEID = array[0..50] of char;

    var
    MapiSessionHandle : PLHandle;

    procedure ShowErrMsg(sErr : String);
    begin
    MessageBeep(0);
    Windows.MessageBox(0, PChar(sErr), 'MAPI-Fehler', MB_ICONSTOP);
    end;

    function SendMsg(Subject,MailMessage: String;
    var Recipient: String;
    iRECEIPT: Integer): Boolean;
    resourcestring
    cAMBIGUOUS_RECIPIENT = 'Der Empfänger ist nicht eindeutig!';
    cFAILURE = 'Es ist ein unerwarteter Fehler aufgetreten.';
    cINSUFFICIENT_MEMORY = 'Nicht genügender Arbeitspeicher vorhanden.';
    cLOGIN_FAILURE = 'Der MAPI-Login-Versuch ist fehlgeschlagen.';
    cNOT_SUPPORTED = 'Die Funktion wird nicht unterstützt.';
    cUSER_ABORT = 'Abbruch durch den Anwender.';
    var
    MapiMessage : TMapiMessage;
    PMyrecipient : PMapiRecipDesc;
    FResult : Cardinal;
    begin
    Result := False;
    FResult := MAPIResolveName(MAPISessionHandle^, 0, PChar(Recipient),
    MAPI_DIALOG or MAPI_LOGON_UI, 0, PMyRecipient);
    case FResult of
    MAPI_E_AMBIGUOUS_RECIPIENT : ShowErrMsg(cAMBIGUOUS_RECIPIENT);
    MAPI_E_FAILURE : ShowErrMsg(cFAILURE);
    MAPI_E_INSUFFICIENT_MEMORY : ShowErrMsg(cINSUFFICIENT_MEMORY);
    MAPI_E_LOGIN_FAILURE : ShowErrMsg(cLOGIN_FAILURE);
    MAPI_E_NOT_SUPPORTED : ShowErrMsg(cNOT_SUPPORTED);
    MAPI_E_USER_ABORT : ShowErrMsg(cUSER_ABORT);
    SUCCESS_SUCCESS : begin
    Recipient := PMyRecipient.lpszName;
    with MapiMessage do
    begin
    ulReserved := 0;
    lpszSubject := PChar(Subject);
    lpszNoteText := PChar(MailMessage);
    lpszMessageType := nil;
    lpszDateReceived := nil;
    lpszConversationID := nil;
    // Empfangsbestätigung ?
    if iRECEIPT = 1 then
    flFlags := MAPI_RECEIPT_REQUESTED
    else
    flFlags := 0;
    lpOriginator := nil;
    nRecipCount := 1;
    lpRecips := PMyRecipient;
    nFileCount := 0;
    lpFiles := nil;
    end;
    Result := (MapiSendMail(0,0,MapiMessage,
    MAPI_LOGON_UI,0) = 0);
    end;
    end;
    MAPIFreeBuffer(PMyRecipient);
    end;
    </pre>
    ... Fortsetzung folgt:
    &#10

    Comment


    • #3
      Teil 2:
      <pre>
      {---------------------------------------------------------}
      { DLL-Schnittstelle }
      {---------------------------------------------------------}

      function E_SendMail(const pRecipient, pTitle, pMsg: PChar;
      iRECEIPT: Integer): Integer; stdcall;
      var
      wMapiRes : Word;
      sRecipient : String;
      sTitle : String;
      sMsg : String;
      begin
      try
      Result := 1;
      sRecipient := pRecipient;
      sTitle := pTitle;
      sMsg := PMsg;
      MapiSessionHandle := New(PLHandle);
      // Läuft Outlook schon? Wenn ja, ist kein LOGON-Dialog notwendig.
      wMapiRes := MAPILogon(0, nil, nil, 0, 0, MapiSessionHandle);
      if wMapiRes <> SUCCESS_SUCCESS then
      begin
      // Hat nicht geklappt -> LOGON-Dialog versuchen
      wMapiRes := MAPILogon(0, nil, nil, MAPI_LOGON_UI, 0, MapiSessionHandle);
      if wMapiRes <> SUCCESS_SUCCESS then
      begin
      ShowErrMsg('MAPI-Verbindungsaufbau ist fehlgeschlagen!');
      Result := 0
      end
      end
      else
      SendMsg(sTitle, sMsg, sRecipient, iRECEIPT);
      except
      MessageBeep(0);
      Result := 0;
      end;
      end;

      end.
      </pre&gt

      Comment


      • #4
        Hallo

        das Beispiel funktioniert leider nicht. Was mach ich falsch ?

        Umgebung:
        - Delphi4 Standard Edition
        - Novell Netzwerk mit Mailserver

        Was passiert:
        - Wenn ich ein E-Mail mit dem Beispiel versende scheint alles zu funktionieren ( keine Fehlermeldung/ Dialogbox zur Anwahl erscheint auch ) nur das Mail kommt nirgends an?

        Besten Dank im vorau

        Comment


        • #5
          Hallo

          ich kann den Fehler nun besser spezifizieren.

          Die Fehlermeldung auf MapiSendMail lautet:
          'MAPI_E_FAILURE' leider ist das gemäss Help die einzige
          Fehlermeldung ohne genauere Angaben.

          Wie kriege ich diese Meldung weg

          Comment


          • #6
            Hallo,

            ich habe das obige Beispiel ausprobiert und es klappt tadelos nachdem ich die Zeile
            <pre>
            PMyRecipient.ulRecipClass := MAPI_TO;
            </pre>
            vor "with MapiMessage do" in der Funktion "SendMsg" eingefügt habe. Vorher wusste Mapi nicht, wie die übergebene Adresse zu deuten ist.

            Nun habe ich aber das Problem, dass ich die Nachricht an mehrere Empfäng (sowohl MAPI_TO als auch MAPI_CC und MAPI_BCC) mit mehreren angehängten Dateien senden muss.

            Wie bekomme ich die mehrfache Zuweisung von Empfängeradressen und Anhängen hin?

            Vielen Dank

            Comment


            • #7
              Es geht auch einfacher. Unter http://www.delphi-jedi.org gibt es die Jedi-Code-Library und Jedi-VCL. Mit Hilfe der Funktion: JclSimpleSendMail braucht nur noch 6 Parameter angegeben werden (Empfänger, Betreff, ...) und alles ist mit einem Funktioneaufruf erledigt

              Comment


              • #8
                Hallo Bernhard,

                vielen Dank für die Info. Ich wollte es zwar nicht einfacher sondern umfangreicher - scheint aber durch die Jedi-Files auch abgedeckt zu sein. Zumindest habe ich jetzt wieder was mit dem ich es weiter versuchen kann

                Comment


                • #9
                  Dort gibt es auch eine etwas umfangreichere Möglichkeit mittels MAPI-Komponente, welche mehr Wünsche erfüllt

                  Comment


                  • #10
                    Hallo Mr. Kosch,

                    die SendMail-Prozedur (weiter unten) funktioniert bestens mit Outlook Express und Netscape Messanger. Nur nicht mit dem großen Outlook.
                    Die Prozedur von Ihnen funkioniert mit Outlook, aber nicht mit den anderen beiden Mail-Clients.

                    Finden Sie den Haken, ich hab ein BVK (Brett vorm Kopf)?

                    Besten Dank fürs Angucken
                    Michael

                    und nun der Quelltext

                    Procedure SendMail(Subject,Mailtext,
                    FromName,FromAdress,
                    ToName,ToAdress,
                    AttachedFileName,
                    DisplayFileName:string;
                    ShowDialog:boolean);

                    (*
                    Aufrufparameter:

                    Subject: Die Betreffzeile
                    Mailtext: Der eigentliche Text der eMail
                    FromName: Der Name des Absenders
                    FromAdress: Die EMail-Adresse des Absenders
                    ToName: Der Name des Empfängers
                    ToAdress: Die EMail-Adresse des Empfängers
                    AttachedFileName: Der Dateiname der angehängten Datei
                    FileDisplayName: Der in der Mail angezeigte Name der angehängten Datei
                    ShowDialog: true: Die Mail wird vor dem Absenden angezeigt
                    false: Die Mail wird "stumm" verschickt
                    *)

                    Implementation

                    uses
                    MAPI,Forms,Dialogs,SysUtils;

                    Procedure SendMail(Subject,Mailtext,
                    FromName,FromAdress,
                    ToName,ToAdress,
                    AttachedFileName,
                    DisplayFileName:string;
                    ShowDialog:boolean);
                    var
                    MapiMessage : TMapiMessage;
                    MError : Cardinal;
                    Empfaenger : Array[0..1] of TMapiRecipDesc;
                    Absender : TMapiRecipDesc;
                    Datei : Array[0..1] of TMapiFileDesc;
                    begin
                    with MapiMessage do begin
                    ulReserved := 0;

                    // Betreff
                    lpszSubject := PChar(Subject);

                    // Body
                    lpszNoteText := PChar(Mailtext);

                    lpszMessageType := nil;
                    lpszDateReceived := nil;
                    lpszConversationID := nil;
                    flFlags := 0;

                    // Absender festlegen
                    Absender.ulReserved:=0;
                    Absender.ulRecipClass:=MAPI_ORIG;
                    Absender.lpszName:= PChar(FromName);
                    Absender.lpszAddress:= PChar(FromAdress);
                    Absender.ulEIDSize:=0;
                    Absender.lpEntryID:=nil;
                    lpOriginator := @Absender;

                    // Empfänger festlegen (Hier: nur 1 Empfänger)
                    nRecipCount := 1;

                    Empfaenger[0].ulReserved:=0;
                    Empfaenger[0].ulRecipClass:=MAPI_TO;
                    Empfaenger[0].lpszName:= PChar(ToName);
                    Empfaenger[0].lpszAddress:= PChar(ToAdress);
                    Empfaenger[0].ulEIDSize:=0;
                    Empfaenger[0].lpEntryID:=nil;
                    lpRecips := @Empfaenger;

                    // Dateien anhängen (Hier: nur 1 Datei)
                    nFileCount := 1;

                    // Name der Datei auf der Festplatte
                    Datei[0].lpszPathName:= PChar(AttachedFilename);

                    // Name, der in der Email angezeigt wird
                    Datei[0].lpszFileName:= PChar(DisplayFilename);
                    Datei[0].ulReserved:=0;
                    Datei[0].flFlags:=0;
                    Datei[0].nPosition:=Cardinal(-1);
                    Datei[0].lpFileType:=nil;
                    lpFiles := @Datei;

                    end;

                    // Senden
                    if ShowDialog then
                    MError := MapiSendMail(0, Application.Handle,
                    MapiMessage, MAPI_DIALOG or MAPI_LOGON_UI, 0)
                    else
                    // Wenn kein Dialogfeld angezeigt werden soll:
                    MError := MapiSendMail(0, Application.Handle, MapiMessage, 0, 0);

                    Case MError of
                    MAPI_E_AMBIGUOUS_RECIPIENT:
                    MessageDlg('Empfänger nicht eindeutig. (Nur möglich, wenn Emailadresse nicht angegeben.)',mterror,[mbok],0);

                    MAPI_E_ATTACHMENT_NOT_FOUND:
                    MessageDlg('Datei zum Anhängen nicht gefunden',mterror,[mbok],0);

                    MAPI_E_ATTACHMENT_OPEN_FAILURE:
                    MessageDlg('Datei zum Anhängen konnte nicht geöffnet werden.',mterror,[mbok],0);

                    MAPI_E_BAD_RECIPTYPE:
                    MessageDlg('Empfängertyp nicht MAPI_TO, MAPI_CC oder MAPI_BCC.',mterror,[mbok],0);

                    MAPI_E_FAILURE:
                    Mes

                    Comment


                    • #11
                      Hallo,
                      die Funktion von Ihnen funktioniert klasse mit Outlook, aber leider nicht mit Netscape Messenger oder Outlook Express.

                      Ich hab hier eine Unit, die funktioniert mit den anderen beiden, aber leider nicht mit Outlook.

                      Wo ist der Haken? Ich habe ein BVK (Brett vorm Kopf)

                      Interface
                      <p>uses<br>
                      Mapi;</p>
                      <p> Procedure SendMail(Subject,Mailtext,<br>
                      FromName,FromAdress,<br>
                      ToName,ToAdress,<br>
                      AttachedFileName,<br>
                      DisplayFileName:string;<br>
                      ShowDialog:boolean);</p>
                      <p>(*<br>
                      Aufrufparameter:</p>
                      <p> Subject: Die Betreffzeile<br>
                      Mailtext: Der eigentliche Text der eMail<br>
                      FromName: Der Name des Absenders<br>
                      FromAdress: Die EMail-Adresse des Absenders<br>
                      ToName: Der Name des Empf&auml;ngers<br>
                      ToAdress: Die EMail-Adresse des Empf&auml;ngers<br>
                      AttachedFileName: Der Dateiname der angeh&auml;ngten Datei<br>
                      FileDisplayName: Der in der Mail angezeigte Name der angeh&auml;ngten Datei<br>
                      ShowDialog: true: Die Mail wird vor dem Absenden angezeigt<br>
                      false: Die Mail wird &quot;stumm&quot; verschickt<br>
                      *)</p>
                      <p>Implementation</p>
                      <p> uses<br>
                      Forms,Dialogs,SysUtils;</p>
                      <p> Procedure SendMail(Subject,Mailtext,<br>
                      FromName,FromAdress,<br>
                      ToName,ToAdress,<br>
                      AttachedFileName,<br>
                      DisplayFileName:string;<br>
                      ShowDialog:boolean);<br>
                      var<br>
                      MapiMessage : TMapiMessage;<br>
                      MError : Cardinal;<br>
                      Empfaenger : Array[0..1] of TMapiRecipDesc;<br>
                      Absender : TMapiRecipDesc;<br>
                      Datei : Array[0..1] of TMapiFileDesc;<br>
                      begin<br>
                      with MapiMessage do begin<br>
                      ulReserved := 0;</p>
                      <p> // Betreff<br>
                      lpszSubject := PChar(Subject);</p>
                      <p> // Body<br>
                      lpszNoteText := PChar(Mailtext);</p>
                      <p> lpszMessageType := nil;<br>
                      lpszDateReceived := nil;<br>
                      lpszConversationID := nil;<br>
                      flFlags := 0;</p>
                      <p> // Absender festlegen<br>
                      Absender.ulReserved:=0;<br>
                      Absender.ulRecipClass:=MAPI_ORIG;<br>
                      Absender.lpszName:= PChar(FromName);<br>
                      Absender.lpszAddress:= PChar(FromAdress);<br>
                      Absender.ulEIDSize:=0;<br>
                      Absender.lpEntryID:=nil;<br>
                      lpOriginator := @Absender;</p>
                      <p> // Empf&auml;nger festlegen (Hier: nur 1 Empf&auml;nger)<br>
                      nRecipCount := 1;</p>
                      <p> Empfaenger[0].ulReserved:=0;<br>
                      Empfaenger[0].ulRecipClass:=MAPI_TO;<br>
                      Empfaenger[0].lpszName:= PChar(ToName);<br>
                      Empfaenger[0].lpszAddress:= PChar(ToAdress);<br>
                      Empfaenger[0].ulEIDSize:=0;<br>
                      Empfaenger[0].lpEntryID:=nil;<br>
                      lpRecips := @Empfaenger;</p>
                      <p> // Dateien anh&auml;ngen (Hier: nur 1 Datei)<br>
                      nFileCount := 1;</p>
                      <p> // Name der Datei auf der Festplatte<br>
                      Datei[0].lpszPathName:= PChar(AttachedFilename);</p>
                      <p> // Name, der in der Email angezeigt wird<br>
                      Datei[0].lpszFileName:= PChar(DisplayFilename);<br>
                      Datei[0].ulReserved:=0;<br>
                      Datei[0].flFlags:=0;<br>
                      Datei[0].nPosition:=Cardinal(-1);<br>
                      Datei[0].lpFileType:=nil;<br>
                      lpFiles := @Datei;</p>
                      <p> end;</p>
                      <p> // Senden<br>
                      if ShowDialog then<br>
                      MError := MapiSendMail(0, Application.Handle,<br>
                      MapiMessage, MAPI_DIALOG or MAPI_LOGON_UI, 0)<br>
                      else<br>
                      // Wenn kein Dialogfeld angezeigt werden soll:<br>
                      MError := MapiSendMail(0, Application.Handle, MapiMessage, 0, 0);</p>
                      <p> Case MError of<br>
                      MAPI_E_AMBIGUOUS_RECIPIENT:<br>
                      MessageDlg('Empf&auml;nger nicht eindeutig. (Nur m&ouml;glich, wenn Emailadresse
                      nicht angegeben.)',mterror,[mbok],0);</p>
                      <p> MAPI_E_ATTACHMENT_NOT_FOUND:<br>
                      MessageDlg('Datei zum Anh&auml;ngen nicht gefunden',mterror,[mbok],0);</p>
                      <p> MAPI_E_ATTACHMENT_OPEN_FAILURE:<br>
                      MessageDlg('Datei zum Anh&auml;ngen konnte nicht ge&ouml;ffnet werden.',mterror,[mbok],0);</p>
                      <p> MAPI_E_BAD_RECIPTYPE:<br>
                      MessageDlg('Empf&auml;ngertyp nicht MAPI_TO, MAPI_CC oder MAPI_BCC.',mterror,[mbok],0);</p>
                      <p> MAPI_E_FAILURE:<br>
                      MessageDlg('Unbekannter Fehler.',mterror,[mbok],0);</p>
                      <p> MAPI_E_INSUFFICIENT_MEMORY:<br>
                      MessageDlg('Nicht genug Speicher.',mter

                      Comment


                      • #12
                        Hallo,
                        die Funktion von Ihnen funktioniert klasse mit Outlook, aber leider nicht mit Netscape Messenger oder Outlook Express.

                        Ich hab hier eine Unit, die funktioniert mit den anderen beiden, aber leider nicht mit Outlook.

                        Wo ist der Haken? Ich habe ein BVK (Brett vorm Kopf)

                        Interface
                        <p>uses<br>
                        Mapi;</p>
                        <p> Procedure SendMail(Subject,Mailtext,<br>
                        FromName,FromAdress,<br>
                        ToName,ToAdress,<br>
                        AttachedFileName,<br>
                        DisplayFileName:string;<br>
                        ShowDialog:boolean);</p>
                        <p>(*<br>
                        Aufrufparameter:</p>
                        <p> Subject: Die Betreffzeile<br>
                        Mailtext: Der eigentliche Text der eMail<br>
                        FromName: Der Name des Absenders<br>
                        FromAdress: Die EMail-Adresse des Absenders<br>
                        ToName: Der Name des Empf&auml;ngers<br>
                        ToAdress: Die EMail-Adresse des Empf&auml;ngers<br>
                        AttachedFileName: Der Dateiname der angeh&auml;ngten Datei<br>
                        FileDisplayName: Der in der Mail angezeigte Name der angeh&auml;ngten Datei<br>
                        ShowDialog: true: Die Mail wird vor dem Absenden angezeigt<br>
                        false: Die Mail wird &quot;stumm&quot; verschickt<br>
                        *)</p>
                        <p>Implementation</p>
                        <p> uses<br>
                        Forms,Dialogs,SysUtils;</p>
                        <p> Procedure SendMail(Subject,Mailtext,<br>
                        FromName,FromAdress,<br>
                        ToName,ToAdress,<br>
                        AttachedFileName,<br>
                        DisplayFileName:string;<br>
                        ShowDialog:boolean);<br>
                        var<br>
                        MapiMessage : TMapiMessage;<br>
                        MError : Cardinal;<br>
                        Empfaenger : Array[0..1] of TMapiRecipDesc;<br>
                        Absender : TMapiRecipDesc;<br>
                        Datei : Array[0..1] of TMapiFileDesc;<br>
                        begin<br>
                        with MapiMessage do begin<br>
                        ulReserved := 0;</p>
                        <p> // Betreff<br>
                        lpszSubject := PChar(Subject);</p>
                        <p> // Body<br>
                        lpszNoteText := PChar(Mailtext);</p>
                        <p> lpszMessageType := nil;<br>
                        lpszDateReceived := nil;<br>
                        lpszConversationID := nil;<br>
                        flFlags := 0;</p>
                        <p> // Absender festlegen<br>
                        Absender.ulReserved:=0;<br>
                        Absender.ulRecipClass:=MAPI_ORIG;<br>
                        Absender.lpszName:= PChar(FromName);<br>
                        Absender.lpszAddress:= PChar(FromAdress);<br>
                        Absender.ulEIDSize:=0;<br>
                        Absender.lpEntryID:=nil;<br>
                        lpOriginator := @Absender;</p>
                        <p> // Empf&auml;nger festlegen (Hier: nur 1 Empf&auml;nger)<br>
                        nRecipCount := 1;</p>
                        <p> Empfaenger[0].ulReserved:=0;<br>
                        Empfaenger[0].ulRecipClass:=MAPI_TO;<br>
                        Empfaenger[0].lpszName:= PChar(ToName);<br>
                        Empfaenger[0].lpszAddress:= PChar(ToAdress);<br>
                        Empfaenger[0].ulEIDSize:=0;<br>
                        Empfaenger[0].lpEntryID:=nil;<br>
                        lpRecips := @Empfaenger;</p>
                        <p> // Dateien anh&auml;ngen (Hier: nur 1 Datei)<br>
                        nFileCount := 1;</p>
                        <p> // Name der Datei auf der Festplatte<br>
                        Datei[0].lpszPathName:= PChar(AttachedFilename);</p>
                        <p> // Name, der in der Email angezeigt wird<br>
                        Datei[0].lpszFileName:= PChar(DisplayFilename);<br>
                        Datei[0].ulReserved:=0;<br>
                        Datei[0].flFlags:=0;<br>
                        Datei[0].nPosition:=Cardinal(-1);<br>
                        Datei[0].lpFileType:=nil;<br>
                        lpFiles := @Datei;</p>
                        <p> end;</p>
                        <p> // Senden<br>
                        if ShowDialog then<br>
                        MError := MapiSendMail(0, Application.Handle,<br>
                        MapiMessage, MAPI_DIALOG or MAPI_LOGON_UI, 0)<br>
                        else<br>
                        // Wenn kein Dialogfeld angezeigt werden soll:<br>
                        MError := MapiSendMail(0, Application.Handle, MapiMessage, 0, 0);</p>
                        <p> Case MError of<br>
                        MAPI_E_AMBIGUOUS_RECIPIENT:<br>
                        MessageDlg('Empf&auml;nger nicht eindeutig. (Nur m&ouml;glich, wenn Emailadresse
                        nicht angegeben.)',mterror,[mbok],0);</p>
                        <p> MAPI_E_ATTACHMENT_NOT_FOUND:<br>
                        MessageDlg('Datei zum Anh&auml;ngen nicht gefunden',mterror,[mbok],0);</p>
                        <p> MAPI_E_ATTACHMENT_OPEN_FAILURE:<br>
                        MessageDlg('Datei zum Anh&auml;ngen konnte nicht ge&ouml;ffnet werden.',mterror,[mbok],0);</p>
                        <p> MAPI_E_BAD_RECIPTYPE:<br>
                        MessageDlg('Empf&auml;ngertyp nicht MAPI_TO, MAPI_CC oder MAPI_BCC.',mterror,[mbok],0);</p>
                        <p> MAPI_E_FAILURE:<br>
                        MessageDlg('Unbekannter Fehler.',mterror,[mbok],0);</p>
                        <p> MAPI_E_INSUFFICIENT_MEMORY:<br>
                        MessageDlg('Nicht genug Speicher.',mter

                        Comment


                        • #13
                          Ist noch niemandem aufgefalen, das im Schritt 2 ein Fehler ist. Wenn der LOGON Dialog funktioniert, wir nicht gesende

                          Comment


                          • #14
                            Hallo MAPI Fans,

                            Der angegeben Code funktioniert mit den Änderungshinweisen ganz gut. Wenn Outlook Express der Standard Client ist, dann wird mit MAPI_DIALOG auch ein Dialog mit der Nachricht erzeugt und angezeigt. Dieser Dialog kann aber nur mit der Tastatur bedient werden. Eine Maussteurerung ist nicht möglich. Mit Microsoft Outlook als Client ist alles OK.

                            Woran liegt dies nun wieder. Ich weiß jetzt keinen Rat mehr!!

                            Comment


                            • #15
                              Das Problem ist letztlich Outlook. Outlook arbeitet nicht so recht mit seiner eigenen MAPI-DLL zusammen. Das liegt unter anderem an den Security-Fixes gegen die ueblichen Mail-Viren.<br>
                              Z. B. zeigt Outlook seinen Profil-Dialog an, wenn es nicht schon laeuft wenn JclSimpleSendMail aufgerufen wird. Eigentlich sind aber von JclSimpleSendMail alle Dialoge abbestellt

                              Comment

                              Working...
                              X