2010-07-13 3 views
4

내가 작업하고있는 응용 프로그램의 요구 사항 중 하나는 사용자가 치명적인 오류가 발생했을 때 헬프 데스크에 디버깅 보고서를 제출할 수있게하는 것입니다 창 오류보고).고객이 다운로드하여 Outlook 계정에서 보낸 전자 메일을 생성하십시오.

헬프 데스크에서 스팸을 받고 대량의 중복 전화가 발생하지 않도록 고객의 메일 계정에서 전자 메일을 보내야한다고 들었습니다.

이 작업을 수행하려면 서버에서 메일 메시지를 작성하고 헬프 데스크의 본문과 첨부 파일로 오류 보고서를 작성한 다음 Response에 추가하십시오. 사용자는이를 다운로드하여 열고 보낼 수 있습니다.

저는 지난 6 시간 동안 여러 응용 프로그램 인스턴스를 만드는 것이 매우 리소스 집약적이라는 것을 발견했기 때문에 Outlook 상호 운용성 구성 요소를 사용하는 것이 의의가 있습니다.

+0

가 되세요 .eml 파일을 다운로드하고 Outlook에서 열어 보았습니다. – Borealid

+0

당신이 가장을 사용하여'System.Net.Mail'을 시도 했습니까? 시도해 볼 수 있습니다. http://stackoverflow.com/questions/1448019/send-email-from-outlook-express-in-c –

+0

@Borealid - .eml 파일을 시도하지 않았습니다. 기본적으로 Outlook에서 열리는 동안 나는 귀찮게하지 않습니다. @Jaroslav System.Net.Mail을 사용하여 메시지를 생성 할 때까지 내가 겪었던 문제는 그 파일을 다운로드 할 수있는 파일로 변환하는 방법입니다. –

답변

1

우리의 응용 프로그램 중 하나에서 사용자가 생성 버튼을 누르면 outlook에서 전자 메일이 만들어지고 열립니다. 그들이해야 할 일은 보내기 버튼입니다. 기능은 다음과 같습니다.

public static void generateEmail(string emailTo, string ccTo, string subject, string body, bool bcc) 
     { 
      Outlook.Application objOutlook = new Outlook.Application(); 
      Outlook.MailItem mailItem = (Outlook.MailItem)(objOutlook.CreateItem(OlItemType.olMailItem)); 

      /* Sets the recipient e-mails to be either sent by 'To:' or 'BCC:' 
      * depending on the boolean called 'bcc' passed. */ 
      if (!(bcc)) 
      { 
       mailItem.To = emailTo; 
      } 
      else 
      { 
       mailItem.BCC = emailTo; 
      } 
      mailItem.CC = ccTo; 
      mailItem.Subject = subject; 
      mailItem.Body = body; 
      mailItem.BodyFormat = OlBodyFormat.olFormatPlain; 
      mailItem.Display(mailItem); 
     } 

검은 딸기와 친숙해야하기 때문에 이메일을 일반 텍스트로 출력하고 있습니다. 일부 서식 옵션을 원한다면 서식을 HTML 또는 richtext로 쉽게 변경할 수 있습니다. HTML 용 mailItem.HTMLBody

희망이 도움이됩니다.

편집 :.

나는 이것이 C# 응용 프로그램에서 사용되는 점에 유의해야하고 이메일 클래스에 Microsoft.Office.Core 및 using Outlook를 참조하고있는 기능에 있습니다

+1

확실히이 질문과 마찬가지로 ASP.NET 응용 프로그램이 아닌 클라이언트 측 응용 프로그램에 있습니까? – bruceboughton

+0

편집 읽기 ... – Gage

4

사용자가 전자 메일 클라이언트 측으로 보내길 원한다면 System.Net.Mail이 어떻게 도움이되는지 알 수 없습니다. 어떤 형식으로 이메일을 다운로드 자신의 클라이언트에서 열 1이 아마 것이

옵션을 보낼 수

  1. mailto:[email protected]?subject=Error&body=Error message here...

  2. GET 사용자 :

    당신은 두 가지 옵션이 있습니다 복잡한 몸으로 부서지다. 옵션 2를 사용하면 사용자가 사용하는 모든 메일 클라이언트에서 지원하는 형식을 찾아야합니다. 옵션 1로

    , 당신은 몇 가지 오류 ID에 대해 서버에 로컬로 이메일 정보를 저장하고 단지 제목에 오류 ID로 메일을 보낼 수 있습니다 :

    mailto:[email protected]?subject=Error 987771 encountered

+0

입력 해 주셔서 감사합니다. Bruce. 이전에 mailto 링크를 사용해 보았지만 스택 추적과 같은 항목을 추가 할 때는 매우 빨리 중단됩니다. 또한 IE8에는 mailto 링크에 512 자 제한이 있습니다. 나는 원래의 질문에 설명 된대로 옵션 2를 달성하려고 노력하고 있습니다. 우리의 헬프 데스크 운영 방식에 따른 요구 사항이 아닌 다른 이유 때문이 아닙니다. –

2

간단한 대답이 그 무엇 당신은 모든 플랫폼과 메일 클라이언트에서 현실적으로 달성 할 수없는 성취를 시도합니다. 그럴 수 없다는 질문을 받았을 때 대안을 생각해 내고 제안하는 것이 현명합니다.

오류 페이지에서만 오류 보고서에 액세스 할 수 있다고 가정하면 스패머가 예외를 강제로 허용하지 않는 한 이미 스팸에 대한 장벽이 있습니다.

저는 항상 데이터베이스에 오류와 텍스트를 기록하고 티켓 시스템과 통합하여이 문제를 해결했습니다. 브루스가 제목 = ID & body = text로 제안하여 사용자가 이메일을 통해 무언가를 보낼 수 있도록 mailto가있을 수도 있습니다.

.eml 형식 파일이 도움이 될 것이라고 생각하지 않습니다. 전달해야하기 때문에 대부분의 사용자는 혼란에 빠질 것입니다.

.eml은 RFC-5322에 따라 헤더를 포함한 메시지의 평문입니다.

관련 문제