¿Cómo configura los ajustes de correo electrónico en CrashRpt para enviar el volcado de memoria?

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

  •  03-07-2019
  •  | 
  •  

Pregunta

Después de leer esta discusión y esta discusión sobre el uso de CrashRpt para generar un volcado de emergencia y enviarlo por correo electrónico a Para los desarrolladores, me ha costado mucho encontrar instrucciones / tutoriales para configurar los ajustes de correo electrónico utilizados por la biblioteca para enviar el correo electrónico.

Cuando llama a la función install () para inicializar CrashRpt, especifica la dirección de correo electrónico a la que desea que se envíe el volcado de recuperación, pero ¿cómo sabe la biblioteca CrashPrt cómo enviar el correo electrónico a esa dirección? ¿No debería la biblioteca conocer la configuración del cliente de correo electrónico para cada usuario individual?

Cuando se produce un bloqueo fatal en mi código, aparece el cuadro de diálogo CrashRpt y cuando ingreso mi dirección de correo electrónico y hago clic en el botón de enviar, me lleva a un " Guardar archivo " cuadro de diálogo donde puedo guardar el paquete comprimido y la cuenta especificada en la función Install () nunca recibe un correo electrónico.

¡Gracias de antemano por cualquier ayuda! Claramente me estoy perdiendo algo.

¿Fue útil?

Solución

¿Qué hace CrashRpt para enviar por correo electrónico?

El sistema de correo electrónico simplemente usa MAPI para enviar su correo electrónico. Lo que intentaría utilizar su cliente de correo predeterminado si tiene uno, y si es compatible con MAPI. Echa un vistazo a MailMsg.cpp para más detalles.

Experiencia personal:

En el uso de CrashRpt de mi empresa, lo modificamos un poco para llamar a un servicio web que creamos y que envía el informe de bloqueo. Así que eliminamos completamente el código de correo electrónico de CrashRpt. Y, en su lugar, tenemos en nuestro sistema de seguimiento de errores una sección para los fallos que se enviaron automáticamente cuando se producen.

Para encontrar tu problema:

Tal vez intente depurar el código CrashRpt para ver por qué le está dando un cuadro de diálogo para guardar. En su lugar, debería abrir su cliente de correo predeterminado. Tal vez tenga una versión anterior de la biblioteca, o tal vez los recursos de diálogo estén un poco desordenados. Sin embargo, depurar el código te dirá esto.

Lo más probable es que MailReport se llame, pero está fallando.

Justo después el 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);
      }
   }

Comprueba por qué MailReport no recibe llamadas. Es el recurso de diálogo, o su m_sTo no está completo o puede pasar por MailMsg.cpp y ver dónde falla MAPI.

Solución alternativa:

Una solución fácil, si encuentra más arriba que MailReport se llama, pero no tiene éxito, es simplemente hacer un ShellExecute y especificar un mailto:

Incluso puedes intentar usar el método MAPI, pero si no puedes hacer un mailto:

Otros consejos

Puede encontrar la documentación de CrashRpt, las Preguntas frecuentes y descargar un nuevo CrashRpt v1.1 aquí http: / /code.google.com/p/crashrpt/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top