e-mail verschicken



  • danke

    @mesta häh



  • Welche Header muss ich einbinden??



  • mapi.h

    🙂



  • was ist _tprintf(); für ne function weil bei mir der compiler dort eine Fehlermeldung gibt:

    implicit declaration of function int _tprintf(...);

    das selbe nochmal bei int NUM_ELEMENTS(...);



  • Ok, _tprintf ist meines Wissens in tchar.h deklariert, oder?
    NUM_ELEMENTS ist nur ein Makro, ich glaub das geht so:

    #define NUM_ELEMENTS(x) (sizeof(x)/sizeof(x[0]))
    

    cya



  • _tprintf ist nicht in tchar.h deklariert da es bei mir nicht funktioniert andere vorschläge
    NUM_ELEMENTS funktioniert jetzt.



  • Ich bin mir jetzt auch nicht ganz im Klaren, wo das deklariert ist, aber nimm doch einfach MessageBox :), denn meiner Meinung nach dient das nur der Ausgabe von Text.

    cya



  • bei mir schickt er keine mail obwhl alles Compiliert wird hier meine funktion

    BOOL EMail (HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
    {
    switch(Message)
          {
          case WM_INITDIALOG:    
               SetDlgItemText(hwnd, IDC_EMAIL_TEXT, "Ich habe ein Problem mit ...");
               return TRUE;
    
          case WM_COMMAND:
               {
               switch(LOWORD(wParam))
                {            
                case IDC_SENDEN:
                  {
                   BOOL correct = FALSE;
                   int len = GetWindowTextLength(GetDlgItem(hwnd, IDC_SENDER));
                   char Sender[255];
                   GetDlgItemText(hwnd, IDC_SENDER, Sender, len+1);
                   if(len==0)
                     {
                     MessageBox(hwnd, "Keine Eingabe bei Sender", "Hinweis",
                     MB_ICONEXCLAMATION | MB_OK);                                 
                     }else correct=TRUE;     
    
                   len = GetWindowTextLength(GetDlgItem(hwnd, IDC_EMAIL_TEXT));
                   char Text[255];
                   GetDlgItemText(hwnd, IDC_EMAIL_TEXT, Text, len+1);
                   if(len==0)
                     {
                     MessageBox(hwnd, "Keine Eingabe bei E-Mail Text", "Hinweis",
                     MB_ICONEXCLAMATION | MB_OK);                                 
                     }else correct=TRUE;     
                  if(correct)
                    { 
                    //E-mail versenden
                    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"))))
                      {
                      MessageBox(hwnd,"could not load mapi32.dll","Fehler",
                                 MB_ICONEXCLAMATION | MB_OK);
                      return(0);
                      }
    
                    // 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 = "Service&Support K2K";
                    mapimsg.lpszNoteText = Text; // 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 = 0; //0 Dateien anhängen
                    mapimsg.lpFiles = &mapifiledesc[0];
    
                    rdOriginator.ulReserved = 0;
                    rdOriginator.ulRecipClass = MAPI_ORIG;
                    rdOriginator.lpszName = 0;
                    rdOriginator.lpszAddress = Sender; // Sender
                    rdOriginator.ulEIDSize = 0;
                    rdOriginator.lpEntryID = NULL;
    
                    rdRecipient[0].ulReserved = 0;
                    rdRecipient[0].ulRecipClass = MAPI_TO;
                    rdRecipient[0].lpszName = "admin"; // Empfängername
                    rdRecipient[0].lpszAddress = "SMTP:maurice100@gmx.de"; // Empfängeradresse 
                    rdRecipient[0].ulEIDSize = 0;
                    rdRecipient[0].lpEntryID = NULL;
    
                    mapifiledesc[1].lpFileType = 0;
    
                    pfnSendMail(lHnd, 0, &mapimsg, 0, 0); // Das eigentliche Versenden
    
                    pfnLogoff(lHnd, 0, 0, 0); // Ausloggen
    
                    FreeLibrary(hDll);
                    }else MessageBox(hwnd, "E-Mail wurde nicht gesendet", "Hinweis",
                                     MB_ICONEXCLAMATION | MB_OK);
                  return 0;
                  }break; 
                case IDC_ENTFERNEN_E:
                  {
                  SetDlgItemText(hwnd, IDC_EMAIL_TEXT, "");
                  return 0;
                  }break;
    
                case IDC_ZURUECK_E:
                  {
                  EndDialog(hwnd, IDC_ZURUECK_E);
                  return 0;
                  }break;
                default : return FALSE;     
                }
                return TRUE;
               }break; 
          case WM_CLOSE:
             {
             EndDialog(hwnd, 0);
             return TRUE;
             }break;
          default: return FALSE;
          }
    return TRUE;
    }
    


  • Hab den Code jetzt nur schnell überflogen, aber wenn du schon die Textlänge der Edit-Felder ermittelst, solltest du diesen Wert dann auch verwenden, und nicht immer '255'.

    cya



  • komisch aufeinmal funktioniert es hab keinen plan wieso aber hauptsache es funktioniert juchu jepie so genug gefreut. :p :p :p :p



  • Hast du auch schön brav die richtige Längenangabe verwendet? Ho-ho!

    cya 😉



  • nö aber gleich


Anmelden zum Antworten