Discussion:
MAPISendMail bei Outlook
(zu alt für eine Antwort)
Howie (remove _)
2004-03-03 10:08:31 UTC
Permalink
Hi,

ich versuche via MAPISendMail eine
Mail zum Versend vorzubereiten.
Bei "The Bat" und "Eudora" geht das problemlos.
Outlook macht leider gar nichts.
Unter dem Kontextmenü "Senden An" gibt es einen eMail-Empfänger der
problemlos mit allen Mailprogrammen geht (die ich getestet habe).
Standard EMail-Klient ist eingerichtet.


Weiss jemand was Programme wie Winzip für Funktionen benutzen oder
wie man diese Aufgabe am besten löst ?

Danke für alle Tips,

Howie
Lars Stegelitz
2004-03-03 20:54:36 UTC
Permalink
Post by Howie (remove _)
Hi,
ich versuche via MAPISendMail eine
Mail zum Versend vorzubereiten.
Bei "The Bat" und "Eudora" geht das problemlos.
Outlook macht leider gar nichts.
Unter dem Kontextmenü "Senden An" gibt es einen eMail-Empfänger der
problemlos mit allen Mailprogrammen geht (die ich getestet habe).
Standard EMail-Klient ist eingerichtet.
Weiss jemand was Programme wie Winzip für Funktionen benutzen oder
wie man diese Aufgabe am besten löst ?
Vorausgesetzt, eine MAPI Anwendung ist installiert
in etwa so: (den meisten Code zur Fehlerprüfung hab ich
entfernt).

HINSTANCE hlibMAPI = LoadLibrary("MAPI32.DLL");
LHANDLE hMAPISession;
MAPILOGON *lpLogon = (MAPILOGON *)GetProcAddress(hlibMAPI,"MAPILogon");
// logon to MAPI app
err = lpLogon(NULL,NULL,NULL,MAPI_LOGON_UI,0,&hMAPISession);

// get the MAPISendMail routine
MAPISENDMAIL *lpMAPISendMail = (MAPISENDMAIL*) GetProcAddress (hlibMAPI, "MAPISendMail");

// create receipient
CString email = "SMTP:***@somewhere.de";
MapiRecipDesc recip = { 0, MAPI_TO, "Sender", (LPTSTR)(LPCTSTR)email, 0, NULL};

// create message
MapiMessage note = {0, "Subject", (LPTSTR)(LPCTSTR)"Body", NULL, NULL, NULL, 0L, NULL,
1, NULL, 0, NULL};

// send mail
err = lpMAPISendMail(0L, 0L, &note, 0, 0L);

MAPILOGOFF *lpLogoff = (MAPILOGOFF *)GetProcAddress(hlibMAPI,"MAPILogoff");
// logout
lpLogoff(hMAPISession,NULL,0,0);


FreeLibrary(hlibMAPI);
--
MfG
Lars Stegelitz
Howie (remove _)
2004-03-04 07:03:28 UTC
Permalink
On Wed, 3 Mar 2004 21:54:36 +0100, "Lars Stegelitz"
<***@t-online.de> wrote:

Danke Lars,

fast genauso habe ich das gemacht.
Geht bei "The Bat" und "Eudora" aber nicht bei
Outlook.
Tests haben jetzt ergeben das es mit ShellExecute und
"mailto:" bei Outlook geht. Ich werde also beide Varianten umsetzen
und die ShellE... bei Outlook nehmen.
Howie
Post by Lars Stegelitz
Post by Howie (remove _)
Hi,
ich versuche via MAPISendMail eine
Mail zum Versend vorzubereiten.
Bei "The Bat" und "Eudora" geht das problemlos.
Outlook macht leider gar nichts.
Unter dem Kontextmenü "Senden An" gibt es einen eMail-Empfänger der
problemlos mit allen Mailprogrammen geht (die ich getestet habe).
Standard EMail-Klient ist eingerichtet.
Weiss jemand was Programme wie Winzip für Funktionen benutzen oder
wie man diese Aufgabe am besten löst ?
Vorausgesetzt, eine MAPI Anwendung ist installiert
in etwa so: (den meisten Code zur Fehlerprüfung hab ich
entfernt).
HINSTANCE hlibMAPI = LoadLibrary("MAPI32.DLL");
LHANDLE hMAPISession;
MAPILOGON *lpLogon = (MAPILOGON *)GetProcAddress(hlibMAPI,"MAPILogon");
// logon to MAPI app
err = lpLogon(NULL,NULL,NULL,MAPI_LOGON_UI,0,&hMAPISession);
// get the MAPISendMail routine
MAPISENDMAIL *lpMAPISendMail = (MAPISENDMAIL*) GetProcAddress (hlibMAPI, "MAPISendMail");
// create receipient
MapiRecipDesc recip = { 0, MAPI_TO, "Sender", (LPTSTR)(LPCTSTR)email, 0, NULL};
// create message
MapiMessage note = {0, "Subject", (LPTSTR)(LPCTSTR)"Body", NULL, NULL, NULL, 0L, NULL,
1, NULL, 0, NULL};
// send mail
err = lpMAPISendMail(0L, 0L, &note, 0, 0L);
MAPILOGOFF *lpLogoff = (MAPILOGOFF *)GetProcAddress(hlibMAPI,"MAPILogoff");
// logout
lpLogoff(hMAPISession,NULL,0,0);
FreeLibrary(hlibMAPI);
Holger Gothan
2004-03-04 08:52:51 UTC
Permalink
Hi,

bei einigen meiner Kunden gab es ein ähnliches Problem.
Die EMail-Versendung über Outlook ging manchmal einfach nicht.
Bisher hat aber immer eine Neuinstallation geholfen. Ansonsten
Läuft es über Outlook gut.

Tschüß, Holger.
Jens Geyer
2004-03-04 08:52:53 UTC
Permalink
Hallo Howie,
Post by Howie (remove _)
fast genauso habe ich das gemacht.
Geht bei "The Bat" und "Eudora" aber nicht bei
Outlook.
Ich weiß, es wird Dir nicht viel helfen, aber ich kann Dir versichern, daß
es funktioniert,. Sowohl mit OE als auch mit Office Outlook. Leider kann ich
den dazugehörigen (Firmen-)code hier nicht posten, außerdem wäre es sowieso
Delphi-Code, kein C++. Was aber an den relevanten Fakten nichts ändert.
Post by Howie (remove _)
Tests haben jetzt ergeben das es mit ShellExecute und
"mailto:" bei Outlook geht. Ich werde also beide Varianten
umsetzen und die ShellE... bei Outlook nehmen.
Kannst Du machen. Beachte aber daß
a) die Kommandozeile eine Längenbegrenzung braucht, sonst schmiert OE
gnadenls ab
b) es mit mailto: nicht möglich ist, Attachments anzuhängen

Den genauen Wert für a) mußt Du mal selbst experimentell bestimmen.
JensG

--
jensgeyer ät hotmail dotcom
Howie (remove _)
2004-03-04 15:24:33 UTC
Permalink
On Thu, 4 Mar 2004 09:52:53 +0100, "Jens Geyer"
Post by Jens Geyer
Hallo Howie,
Post by Howie (remove _)
fast genauso habe ich das gemacht.
Geht bei "The Bat" und "Eudora" aber nicht bei
Outlook.
Ich weiß, es wird Dir nicht viel helfen, aber ich kann Dir versichern, daß
es funktioniert,. Sowohl mit OE als auch mit Office Outlook. Leider kann ich
den dazugehörigen (Firmen-)code hier nicht posten, außerdem wäre es sowieso
Delphi-Code, kein C++. Was aber an den relevanten Fakten nichts ändert.
Post by Howie (remove _)
Tests haben jetzt ergeben das es mit ShellExecute und
"mailto:" bei Outlook geht. Ich werde also beide Varianten
umsetzen und die ShellE... bei Outlook nehmen.
Kannst Du machen. Beachte aber daß
a) die Kommandozeile eine Längenbegrenzung braucht, sonst schmiert OE
gnadenls ab
b) es mit mailto: nicht möglich ist, Attachments anzuhängen
Das ist ja das verrückte:
mit &att:filename="test.txt"...
kann man nur bei Outlook auch Attachments anhängen.

Danke,
Howie
Post by Jens Geyer
Den genauen Wert für a) mußt Du mal selbst experimentell bestimmen.
JensG
Jens Geyer
2004-03-04 16:28:59 UTC
Permalink
Hallo Howie,
Post by Howie (remove _)
mit &att:filename="test.txt"...
kann man nur bei Outlook auch Attachments anhängen.
Ups, seit wann das denn? Das muß ich doch gleich mal ausprobieren. Danke für
den Tip!

JensG

Loading...