충돌 덤프를 보내기 위해 Crashrpt에서 이메일 설정을 어떻게 구성합니까?

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

  •  03-07-2019
  •  | 
  •  

문제

읽고 나서 이 토론 그리고 이 토론 CrashRpt를 사용하여 충돌 덤프를 생성하고 개발자에게 이메일을 보내는 것에 대해, 라이브러리에서 사용한 이메일 설정을 이메일을 보내기 위해 지침/튜토리얼을 찾는 데 어려움을 겪고 있습니다.

CrashRpt를 초기화하기 위해 Install () 함수를 호출 할 때 Crash 덤프를 보내는 이메일 주소를 지정하지만 CrashPrt 라이브러리는 해당 주소로 이메일을 보내는 방법을 어떻게 알 수 있습니까? 라이브러리가 각 개별 사용자의 이메일 클라이언트 설정을 알 필요가 없습니까?

내 코드에서 치명적인 충돌이 발생하면 CrashRpt 대화 상자가 나타나고 이메일 주소를 입력하고 보내기 버튼을 클릭하면 ZIPPEND 패키지 및 지정된 계정을 저장할 수있는 "파일 저장"대화 상자로 이동합니다. 설치 () 함수에서는 전자 메일을받지 않습니다.

모든 도움에 미리 감사드립니다! 나는 분명히 뭔가를 놓치고있다.

도움이 되었습니까?

해결책

CrashRpt가 이메일을 보내기 위해하는 일 :

이메일 시스템은 단순히 MAPI를 사용하여 이메일을 보냅니다. 기본 메일 클라이언트가 있고 MAPI를 지원하는 경우 기본 메일 클라이언트를 사용하려고합니다. 자세한 내용은 Mailmsg.cpp를 살펴보십시오.

개인적인 경험 :

회사의 CrashRpt 사용에서 우리는 Crash 보고서를 제출 한 웹 서비스를 호출하는 데 약간 수정되었습니다. 그래서 우리는 Crashrpt에서 이메일 코드를 완전히 gutt습니다. 대신 우리는 버그 추적 시스템에 충돌이 발생할 때 자동 제출 된 충돌 섹션을 가지고 있습니다.

문제를 찾으려면 :

CrashRpt 코드를 디버깅하여 왜 저장 대화 상자를 제공하는지 확인하려고 할 것입니다. 대신 기본 메일 클라이언트를 열어야합니다. 어쩌면 오래된 버전의 라이브러리가 있거나 대화 자원이 약간 엉망이 될 수 있습니다. 코드를 디버깅하면이를 알려줍니다.

아마도 우편 보고서가 호출되고 있지만 실패하고 있습니다.

원본에서 중단 점을 설정하십시오 CrashRpt 코드DOMODAL 직후의 CRASSHANDLER.CPP :

 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);
      }
   }

MailReport가 호출되지 않은 이유를 확인하십시오. 대화 자원이거나 M_STO가 채워지지 않았거나 MailMSG.CPP를 통해 MAPI가 어디에서 실패하는지 확인할 수 있습니다.

대체 솔루션 :

우편 보고서가 호출되지만 성공하지 못한 경우 쉽게 해결할 수있는 수정 사항은 대신 Shellexecute를 수행하고 Mailto를 지정하는 것입니다.

MAPI 메소드를 사용하려고 시도 할 수도 있지만 Mailto를 수행하지 않으면 다음과 같습니다.

다른 팁

Crashrpt 문서, FAQ를 찾아서 새로운 Crashrpt v1.1을 여기에서 다운로드 할 수 있습니다. http://code.google.com/p/crashrpt/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top