Wie beurteilen Sie die E-Mail-Einstellungen in CrashRpt konfigurieren das Crash-Dump senden?

StackOverflow https://stackoverflow.com/questions/217463

  •  03-07-2019
  •  | 
  •  

Frage

Nach dem Lesen diese Diskussion und diese Diskussion über CrashRpt mit einem Crash-Dump zu erzeugen und eine E-Mail an die Entwickler, ich habe zu finden, eine schwierige Zeit war, die alle Anweisungen / Anleitungen zur Konfiguration der E-Mail-Einstellungen von der Bibliothek verwendet, um die E-Mail zu senden.

Wenn Sie die Installation () aufrufen Funktion CrashRpt zu initialisieren, geben Sie die E-Mail-Adresse, die Sie den Crash-Dump gesendet werden sollen, aber wie sieht die CrashPrt Bibliothek wissen, wie die E-Mail an diese Adresse zu schicken? Wäre das nicht die Bibliothek hat die E-Mail-Client-Einstellungen für jeden einzelnen Benutzer wissen?

Wenn ein tödlicher Unfall in meinem Code auftritt, erscheint das CrashRpt Dialogfeld zu öffnen, und wenn ich meine E-Mail-Adresse eingeben und die Schaltfläche Senden klicken, nimmt es mich zu einem „Datei speichern“ Dialogfeld, in dem ich das ZIP-Paket speichern und das Konto in der Install () Funktion angegeben nie eine E-Mail erhält.

Vielen Dank im Voraus für irgendwelche und alle Hilfe! Ich bin etwas klar fehlt.

War es hilfreich?

Lösung

Was CrashRpt tut für E-Mail:

Das E-Mail-System verwendet einfach MAPI Ihre E-Mail zu senden. Welche würde versuchen, Ihren Standard-Mail-Client zu verwenden, wenn Sie eine haben, und wenn es unterstützt MAPI. Werfen Sie einen Blick auf MailMsg.cpp für weitere Einzelheiten.

Persönliche Erfahrung:

In meiner Firma Nutzung von CrashRpt, geändert wir es ein wenig, obwohl einen Web-Service zu nennen, die wir geschaffen, die den Absturz Bericht vorlegt. So entkernten wir den E-Mail Code vollständig von CrashRpt. Und stattdessen haben wir in unserem Bug-Tracking-System einen Abschnitt für Abstürze, das Auto abgegeben wurden, wenn Abstürze passieren.

Ihr Problem zu finden:

würde ich vielleicht versuchen, den CrashRpt Code zu debuggen, um zu sehen, warum es einen Dialog speichern geben. Es sollte stattdessen öffnen Sie einfach Ihre Standard-Mail-Client. Vielleicht haben Sie eine ältere Version der Bibliothek, oder vielleicht die Dialog-Ressourcen sind ein wenig Messed. den Code debuggen werden Sie diese allerdings sagen.

Wahrscheinlich Mailreport aufgerufen wird, aber versagt.

einen Haltepunkt in der ursprünglichen CrashRpt Code 's CrashHandler.cpp um kurz nach die DoModal:

 mainDlg.m_pUDFiles = &m_files;
   if (IDOK == mainDlg.DoModal())
   {
      //Put breakpoint here <---------
      if (m_sTo.IsEmpty() || 
          !MailReport(rpt, sTempFileName, mainDlg.m_sEmail, mainDlg.m_sDescription))
      {
         SaveReport(rpt, sTempFileName);
      }
   }

Überprüfen Sie, warum Mailreport nicht genannt zu werden. Es ist entweder die Dialogressource, oder Ihre m_sTo nicht gefüllt ist, oder Sie können durch MailMsg.cpp Schritt und sehen, wo MAPI ausfällt.

Alternative Lösung:

Eine einfache Lösung, wenn Sie über diesem Mailreport finden wird genannt, aber nicht gelingen, wird stattdessen nur ein ShellExecute tun und gibt ein mailto:

Sie könnten sogar versuchen, die MAPI-Methode zu verwenden, aber wenn das nicht klappt ein tun mailto:

Andere Tipps

Sie können die CrashRpt Dokumentation, FAQ finden und eine neue CrashRpt v1.1 hier herunterladen http: / /code.google.com/p/crashrpt/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top