Emails verschicken???
-
Hi,
etwas ausfuehrlicher sieht es so aus:CString strMail = "mailto: deine@adresse.de";
ShellExecute(NULL, _T("open"),strMail,NULL,NULL, SW_SHOW);Gruss
items
-
Sorry, verklickt
[ Dieser Beitrag wurde am 17.09.2002 um 11:53 Uhr von items editiert. ]
-
So habe ich es gemacht:
BOOL Rep::SendMail(CString czEmpfaengerAdresse, CString czFileName, CString czBetreff) { LPMAPISENDMAIL pfnSendMail; MapiRecipDesc rdOriginator; MapiRecipDesc rdRecipient[1]; MapiFileDesc rdFile [1]; LPMAPILOGOFF pfnLogoff; LPMAPILOGON pfnLogon; MapiMessage mapimsg; HINSTANCE hDll; LHANDLE lHnd; if(NULL == (hDll = LoadLibrary(TEXT("MAPI32.DLL")))){ // Ist das Laden der DLL erfolgreich gewesen ? _tprintf(TEXT("could not load mapi32.dll, ErrorCode: %u"), GetLastError()); // Nein WriteToLogDatei("Die Datei \"MAPI32.DLL\" konnte nicht geladen werden"); WriteToLogDatei("Es kann keine Datei per Email versendet werden"); return FALSE; } pfnLogon = (LPMAPILOGON) GetProcAddress(hDll, "MAPILogon"); // Adressen der DLL-Funktionen ermitteln pfnLogoff = (LPMAPILOGOFF) GetProcAddress(hDll, "MAPILogoff"); pfnSendMail = (LPMAPISENDMAIL)GetProcAddress(hDll, "MAPISendMail"); pfnLogon (0, NULL, NULL, 0, 0, &lHnd); // Informationen für das Email-System mapimsg.ulReserved = 0; // Muss 0 sein mapimsg.lpszSubject = (char*) (LPCTSTR) czBetreff; // Betrefftext mapimsg.lpszNoteText = "Dieses Email wurde automatisch verschickt"; // Mailtext mapimsg.lpszMessageType = NULL; mapimsg.lpszDateReceived = NULL; // Empfangsdatum (YYYY/MM/DD HH:MM) mapimsg.lpszConversationID = NULL; mapimsg.flFlags = 0; mapimsg.lpOriginator = &rdOriginator; // Senderinformationen mapimsg.nRecipCount = 1; // Anzahl der Empfänger-Infos mapimsg.lpRecips = rdRecipient; // Empfängerinformationen mapimsg.nFileCount = 1; // Anzahl der angehängten Files mapimsg.lpFiles = rdFile; // Array mit den File-Infos // Informationen über den Sender der Nachricht rdOriginator.ulReserved = 0; // Muss 0 sein rdOriginator.ulRecipClass = MAPI_ORIG; // Gibt an ob der Sender als "An", "CC:" oder "BCC" gesetzt werden soll (MAPI_ORIG, MAPI_TO, MAPI_CC, MAPI_BCC) rdOriginator.lpszName = "Programm"; // Antwortname rdOriginator.lpszAddress = "not@viable.com"; // Antwortadresse rdOriginator.ulEIDSize = 0; rdOriginator.lpEntryID = NULL; // Informationen über den Empfänger der Nachricht rdRecipient[0].ulReserved = 0; // Muss 0 sein rdRecipient[0].ulRecipClass = MAPI_TO; // Gibt an ob der Empfänger als "An", "CC:" oder "BCC" gesetzt werden soll (MAPI_ORIG, MAPI_TO, MAPI_CC, MAPI_BCC) rdRecipient[0].lpszName = (char*) (LPCTSTR) czEmpfaengerAdresse; // Text wird im Feld "An:" angezeigt rdRecipient[0].lpszAddress = (char*) (LPCTSTR) czEmpfaengerAdresse; // Emailadresse des Empfängers ("SMTP:michael.kuenzler@ateg-online.de") rdRecipient[0].ulEIDSize = 0; rdRecipient[0].lpEntryID = NULL; // Informationen über das angehängte File rdFile[0].ulReserved = 0; // Muss 0 sein rdFile[0].flFlags = 0; rdFile[0].nPosition = 1; rdFile[0].lpszPathName = (char*) (LPCTSTR) czFileName; // Datei die versendet werde soll (Pfad und Dateiname) rdFile[0].lpszFileName = (char*) (LPCTSTR) czFileName; // Bezeichnung die unter dem File in dem Email angegeben wird rdFile[0].lpFileType = NULL; //pfnSendMail(lHnd, NULL, &mapimsg, MAPI_DIALOG, 0); if (!pfnSendMail(lHnd, NULL, &mapimsg, 0, 0) == SUCCESS_SUCCESS) // War das Versenden erfolgreich ? (Empfängeradresse wird nicht auf Gültigkeit geprüft) WriteToLogDatei ("Email wurde versendet an: \"" + czEmpfaengerAdresse + "\""); else WriteToLogDatei ("Es trat ein Fehler beim Versenden der Email auf"); pfnLogoff(lHnd, 0, 0, 0); FreeLibrary(hDll); // DLL freigeben return TRUE; }
Gruß Michael
[ Dieser Beitrag wurde am 17.09.2002 um 12:19 Uhr von M_kuenzler editiert. ]
-
SChau mal bei Codeguru. Dort gibt es zuhauf SMTP-Klassen welche funktionieren.
-
ich nehm immer eine Hyperlink-Klasse von codeproject
da sind dann ganz gewöhnliche Links auf der Oberfläche
-
Wenn man ein Festgelegtes EMAIL versenden will, dann sollte man nicht ein EMAILPROGRAM aufrufen. Was wäre wenn keines installiert ist. Oder eines welches sich so nicht aufrufen läßt.
-
Original erstellt von Unix-Tom:
Wenn man ein Festgelegtes EMAIL versenden will, dann sollte man nicht ein EMAILPROGRAM aufrufen. Was wäre wenn keines installiert ist. Oder eines welches sich so nicht aufrufen läßt.Ja genau, so möchte ich es auuch...
Emails OHNE Hilfe eines Emailprogramms versenden können...
sionst macht es ja keinen sinn, wenn das EMAIL PROGGY eh geöäffnet wird! oder?
-
Naja, habs bisher immer nur für Info-Dialogfelder benützt und da reciht der einfache Link auch
-
Genau. Und das ist auch genau das, was chappa70 wollte.
-
chappa70 wollte das zwar aber wir sind ja auch dazu da ihm andere Ideen zu liefern um ein programm Anwenderfreundlicher und/oder besser zu machen.
-
Guck mal hier
Lad dir die Klasse runter,
ist super einfach to use...erklärung steht da auch bei (inkl. beispeil)
kann man nix falsch machen...