Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
Verfasst am: 07.02.2005, 14:21 Titel: e-mail senden |
|
|
Hallo.
Ich programmire einen "Fehlermelder" für mein Wörterbuch.Der Benutzer gibt da die Fehlerbeschreibung ein,das Programm sammelt einige PC-Informationen(CPU,RAM,Gfk..) und (wenn eine Internetverbindung besteht) sendet es an meine e-mail.
Es soll so funktionieren,dass das Programm die e-mail ohne externe Programme(z.B. Outlook Express) verschicken soll.
Kennt jemand die nötige Funktion dafür?
Danke. |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 07.02.2005, 14:28 Titel: |
|
|
Hi,
das einfachste ist MAPI, aber die ist nicht auf jedem rechner installiert:
CPP: | #include <windows.h>
#include <mapi.h>
#include <tchar.h>
#include <stdio.h>
#define NUM_ELEMENTS(x) (sizeof((x)) / sizeof((x)[0]))
int _tmain(void)
{
LPMAPISENDMAIL pfnSendMail;
MapiRecipDesc rdOriginator;
MapiRecipDesc rdRecipient[1];
LPMAPILOGOFF pfnLogoff;
LPMAPILOGON pfnLogon;
MapiMessage mapimsg;
HINSTANCE hDll;
LHANDLE lHnd;
if(NULL == (hDll = LoadLibrary(TEXT("MAPI32.DLL"))))
{
_tprintf(TEXT("could not load mapi32.dll, ErrorCode: %u"), GetLastError());
return(0);
}
pfnLogon = (LPMAPILOGON) GetProcAddress(hDll, "MAPILogon");
pfnLogoff = (LPMAPILOGOFF) GetProcAddress(hDll, "MAPILogoff");
pfnSendMail = (LPMAPISENDMAIL)GetProcAddress(hDll, "MAPISendMail");
pfnLogon(0, NULL, NULL, 0, 0, &lHnd);
mapimsg.ulReserved = 0;
mapimsg.lpszSubject = "This is the subject";
mapimsg.lpszNoteText = "This is the message";
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 = 0;
mapimsg.lpFiles = NULL;
rdOriginator.ulReserved = 0;
rdOriginator.ulRecipClass = MAPI_ORIG;
rdOriginator.lpszName = "rdOriginator";
rdOriginator.lpszAddress = "test@irgendwo.de";
rdOriginator.ulEIDSize = 0;
rdOriginator.lpEntryID = NULL;
rdRecipient[0].ulReserved = 0;
rdRecipient[0].ulRecipClass = MAPI_TO;
rdRecipient[0].lpszName = "rdRecipient[0]";
rdRecipient[0].lpszAddress = "test@irgendwo.de";
rdRecipient[0].ulEIDSize = 0;
rdRecipient[0].lpEntryID = NULL;
pfnSendMail(lHnd, NULL, &mapimsg, 0, 0);
pfnLogoff(lHnd, 0, 0, 0);
FreeLibrary(hDll);
return(0);
} |
Hab keine Ahnung ob das noch läuft, ist schon seine Jährchen her _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
|
Maxim Senior JLI'ler
Anmeldedatum: 28.03.2004 Beiträge: 249
Medaillen: Keine
|
Verfasst am: 07.02.2005, 14:38 Titel: |
|
|
Patrick hat Folgendes geschrieben: | Hi,
das einfachste ist MAPI, aber die ist nicht auf jedem rechner installiert:
|
MAPI ,was ist das ? nie gehört |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 09.02.2005, 15:39 Titel: |
|
|
kann man die dll nicht einfach mitgeben ? _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
xardias JLI Master
Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 09.02.2005, 15:46 Titel: |
|
|
Zitat: | #define NUM_ELEMENTS(x) (sizeof((x)) / sizeof((x)[0])) |
Ich dachte in c++ funktioniert das nicht. Auf jeden fall würde das nicht mit dynamischen Arrays funktionieren, oder irre ich mich da etwa? |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 09.02.2005, 16:30 Titel: |
|
|
xardias
CPP: | unsigned long size(int* pointer)
{
// Wird nicht funktionieren, da der Pointer seine Formatierung verloren hat
return (sizeof(pointer) / sizeof(pointer[0]));
}
int main (void)
{
int* pointer = new int[20];
// Funzt!
::std::wcout << L"Länge des Pointers beträgt: " << (sizeof(pointer) / sizeof(pointer[0])) << ::std::endl;
// Funzt net, da Formatierung verloren ist durch die Übergabe
::std::wcout << L"Länge des Pointers beträgt: " << ::size(pointer) << ::std::endl;
delete[] pointer;
return 0;
}
|
_________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
|
|