Mailanhang

JaD

Mitglied
Hallo,
habe da mal ne Frage.
Vielleicht weiß hier ja jemand, ob und wenn ja wie das geht.
Also, mein Programm ermittelt Pfade verschiedener Tools und Dateien.
Jetzt möchte ich gerne, dass ich per Klick die Dateien (txt und log) per Mail verschicken kann.
Email kann ich öffnen
Code:
ShellExecute(NULL,"open","mailto:bla@bla.de",NULL,NULL,NULL);
jetzt weiß ich nur nicht wie ich da die Dateien anhängen kann und ob das überhautpt so geht :rolleyes:.
Gruß JaD
 
Zuletzt bearbeitet:
Hallo,

spziell für E-mails mit allem drum und dran gibts unter Windows die MAPI. Google mal danach, da dürftest du schnell was passendes finden.

Gruß
cesupa
 
Danke für den Tipp.
Habe da mal ein bissl gesucht und habe bis jetzt das hinbekommen:

Code:
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);

Das wird ohne Fehler kompiliert, aber sobald ich das dann anklicken um es zu öffnen stürzt das Programm auf, öffnet aber noch eine Mail, nur leider ohne anhang.
Hab nicht so besonders viel ahnung, vielleicht hat da ja jemand erfahrungen mit.
 
Zurück