e-mail starten



  • Hallo, weiss jemand, wie man aus einem Programm heraus das Standard e-mail Programm starten kann?
    Danke im voraus



  • Hmm ich glaube das musst du aus der Registry nehmen....außer
    du nimmst einfach.....

    ShellExecute(NULL, "open", "mailto:", NULL, NULL, SW_SHOWNORMAL);
    

    oder

    ShellExecute(NULL, "open", "mailto:Beispiel@GMX.net", NULL, NULL, SW_SHOWNORMAL);
    

    Ich hoffe das hat dir weitergeholfen!



  • Danke für den Hinweis. Leider wird aber nur Outlook geöffnet, mein Standard mail-Client ist aber Netscape. Ich werd mal in der Registry schauen...



  • Hallo, habs über die Registry geschafft mit:

    TCHAR key[MAX_PATH + MAX_PATH];
      HINSTANCE result;
      BOOL error = FALSE;
    
      // get the .htm regkey and lookup: standard e-mail client
      if (GetRegKey(HKEY_CLASSES_ROOT, _T(".htm"), key) == ERROR_SUCCESS)
      {
        lstrcat(key, _T("\\shell\\open\\command"));
    
        if (GetRegKey(HKEY_CLASSES_ROOT,key,key) == ERROR_SUCCESS)
        {
          TCHAR *pos;
          pos = _tcsstr(key, _T("\"%1\""));
          if (pos == NULL) {                     // No quotes found
            pos = _tcsstr(key, _T("%1"));        // Check for %1, without quotes 
            if (pos == NULL)                     // No parameter at all...
              pos = key+lstrlen(key)-1;
            else
              *pos = '\0';                      // Remove the parameter
          }
          else
            *pos = '\0';                        // Remove the parameter
    
          lstrcat(pos, _T(" "));
          lstrcat(pos, "mailto:mustermann@t-online.de");
    
          USES_CONVERSION;
          result = (HINSTANCE) WinExec(T2A(key),showcmd);
          if ((UINT)result <= HINSTANCE_ERROR)
            error = TRUE;
        }
        else
        {
          error = TRUE;
        }
      }
      else
      {
        error = TRUE;
      }
    


  • @ Reiner

    Ich habe Deinen Code ausprobiert, da bei mir auch der Standard Mail Client geladen werden soll. Es soll automatisch eine Mail erstellt werden mit Empfängeraddresse und eine Datei als Attachement angehangen werden, jedoch noch nicht abgeschickt. Gibt es da eine Standardlösung für jeweils Outlook, Mozilla und Opera ?

    Dein Code hat bei mir folgende Fehler gebracht:
    F:\PROJEKTE\SCHMIDT\FLparse\FLparseView.cpp(51) : error C2065: 'GetRegKey' : nichtdeklarierter Bezeichner
    F:\PROJEKTE\SCHMIDT\FLparse\FLparseView.cpp(72) : error C2065: 'USES_CONVERSION' : nichtdeklarierter Bezeichner
    F:\PROJEKTE\SCHMIDT\FLparse\FLparseView.cpp(73) : error C2065: 'T2A' : nichtdeklarierter Bezeichner
    F:\PROJEKTE\SCHMIDT\FLparse\FLparseView.cpp(73) : error C2065: 'showcmd' : nichtdeklarierter Bezeichner

    Ich habe in der MSDN nachgeschaut. GetRegKey gibt es bei mir als Fkt. überhaupt nicht. Ich benutze VC6++ unter WinXP .

    Würde mich sehr über Hilfe freuen.

    MfG,
    pietux



  • hey, wenn das die fehler von pietux geklärt sind, wär das nicht was für die FAQ? klingt zumindest recht vielversprechend



  • MapiSendMail macht doch alles. Wozu in der Registry suchen und der ganze Mist?



  • Hi Pietux,
    sorry, ich hatte beim geposteten Code übersehen, dass da auf eine Klasse referenziert ist, die nicht MFC ist. GetRegKey ist Teil von CHyperlink das ich von CodeGuru über den Link
    http://www.codeguru.com/buttonctrl/CButtonST32.html
    geladen habe. Übrigens ein paar sehr schöne Buttons....


Anmelden zum Antworten