LPMAPISENDMAIL pfnSendMail;
MapiRecipDesc rdOriginator;
MapiRecipDesc rdRecipient[1];
LPMAPILOGOFF pfnLogoff;
LPMAPILOGON pfnLogon;
MapiMessage mapimsg;
HINSTANCE hDll;
LHANDLE lHnd;
MapiFileDesc mapifiledesc[2];
if(NULL == (hDll = LoadLibrary(TEXT("MAPI32.DLL"))))
{
_tprintf(TEXT("could not load mapi32.dll, ErrorCode: %u"),GetLastError());
}
// Die Funktionen aus der DLL holen
pfnLogon = (LPMAPILOGON)GetProcAddress(hDll, "MAPILogon");
pfnLogoff = (LPMAPILOGOFF)GetProcAddress(hDll, "MAPILogoff");
pfnSendMail = (LPMAPISENDMAIL)GetProcAddress(hDll, "MAPISendMail");
pfnLogon(0, NULL, NULL, 0, 0, &lHnd); // Einloggen
mapimsg.ulReserved = 0;
mapimsg.lpszSubject = "Subject";
mapimsg.lpszNoteText = "Hi!\n\nAnbei ist eine Datei!\n\nGruß\nIch\n"; //EMailtext
mapimsg.lpszMessageType = NULL;
mapimsg.lpszDateReceived = NULL;
mapimsg.lpszConversationID = NULL;
mapimsg.flFlags = 0;
mapimsg.lpOriginator = &rdOriginator;
//mapimsg.nRecipCount = NUM_ELEMENTS(rdRecipient);
mapimsg.lpRecips = rdRecipient;
mapimsg.nFileCount = 1; //1 Dateien anhängen
mapimsg.lpFiles = &mapifiledesc[0];
rdOriginator.ulReserved = 0;
rdOriginator.ulRecipClass = MAPI_ORIG;
rdOriginator.lpszName = "rdOriginator";
rdOriginator.lpszAddress = "ich@sender.de"; // Sender
rdOriginator.ulEIDSize = 0;
rdOriginator.lpEntryID = NULL;
rdRecipient[0].ulReserved = 0;
rdRecipient[0].ulRecipClass = MAPI_TO;
rdRecipient[0].lpszName = "Empfängername"; // Empfängername
rdRecipient[0].lpszAddress = "meine@gmx.de"; // Empfängeradresse
rdRecipient[0].ulEIDSize = 0;
rdRecipient[0].lpEntryID = NULL;
mapifiledesc[0].ulReserved = 0;
mapifiledesc[0].flFlags = 0;
mapifiledesc[0].nPosition = -1;
mapifiledesc[0].lpszPathName = ltest; // Die erste Datei
mapifiledesc[0].lpszFileName = "test.log"; // so heisst die Datei im Anhang des EMails
mapifiledesc[0].lpFileType = 0;
pfnSendMail(lHnd, NULL, &mapimsg, 0, 0); // Das eigentliche Versenden
pfnLogoff(lHnd, 0, 0, 0); // Ausloggen
FreeLibrary(hDll);