2017-10-07 2 views
0

.msg 파일을 .txt로 변환하려고합니다. 두 가지 질문이 있습니다..MSG 파일을 .TXT로 변환; Microsoft.Interop Outlook을 사용해야합니까?

1) Microsoft.Interop Outlook 패키지를 조사하고 발견했으며 bodyHTML, To, 보낸 날짜 및 기타 속성을 추출 할 수있는 방법이 있지만 이것이 매우 수동 프로세스 내가

MailItem mailItem = outlookApp.Session.OpenSharedItem(item) as MailItem; 
TextFile textFile = new TextFile(); //collection of properties I am interested in 
textFile.To = mailItem.To; 
textFile.Subject = mailItem.Subject; 
textFile.Sent = mailItem.SentOn.ToString(); 
textFile.Name = Path.GetFileNameWithoutExtension(item); 
var atttach = mailItem.Attachments; //Really just want the names 
textFile.Body = RemoveStuff(mailItem.HTMLBody); //manually removing all html tags 
textFiles.Add(textFile); 
Marshal.ReleaseComObject(mailItem); 

사람이 알고 있나요 ... 그런 < BR>, & NBSP 등 A HREF ... 여기

내 현재 코드입니다 모든 HTML 태그를 손질해야하기 때문에 C# 또는 내가 모르는 Interop을 사용하는 방식으로이 작업을 수행하는보다 효과적인 방법이 있습니까?

2) 내가 interop 경로로 간다면 Outlook에 대한 액세스를 허용 할 수 있는지 묻는 Outlook에서 팝업을 건너 뛸 수있는 방법이 있습니까? 내 목표는 변환기를 만드는 것입니다 비효율적 인 것 같습니다.

도움을 주시면 대단히 감사하겠습니다.

감사합니다.

답변

1

먼저, 일반 텍스트 본문 대신 HTMLBody 속성을 사용하는 이유는 무엇입니까?

둘째, MailItem.saveAs (..., olTxt)를 사용하여 메시지를 텍스트 파일로 저장할 수 있습니다. 아니면 txt 파일로 다른 것을 의미합니까?

바이러스 백신 응용 프로그램이 최신 버전이 아닌 경우 Outlook에서 보안 메시지를 표시합니다. 코드가 실행되는 환경을 제어 할 수없는 경우 확장 MAPi (C++ 또는 Delphi 만 해당) 또는 Redemption (모든 언어)과 같은 래퍼는 거의 유일한 옵션입니다. 자세한 내용은 http://www.outlookcode.com/article.aspx?id=52을 참조하십시오. 그건 내가 텍스트로 저장 한, 할 필요가 정확히 무엇을,

using Redemption; 
... 
RDOSession session = new RDOSession(); 
RDOMail msg = session.GetMessageFromMsgFile(TheFileName); 
msg.SaveAs(TxtFileName, rdoSaveAsType.olTXT); 
+0

와우 정말 감사합니다 : Redemption에서

, 당신은 다음과 같은 일을 할 수 있습니다. (나는 saveAs를 알지 못했고, 그래서 HTMLBody를 사용하고 수동으로 모든 HTML 태그와 엔티티를 파싱했다). 이제는 mailItem.To 속성을 캡처하지 않는다는 것뿐입니다. 구속에 대해 들어 본 적이 있지만 라이센스로 인해 사용할 수는 없습니다. 다시 한 번 감사드립니다! – bird

+0

txt 형식이받는 사람/참조 헤더를 저장하지 않는다고 말하고 있습니까? 또는 이메일 주소가 포함되어 있지 않습니까? –

+0

두 가지 모두, mailItem.To에 입력하면 null이지만 내 .MSG에는받는 사람에게 분명히 있습니다. null 이후 텍스트 파일에 저장되는 내용이 없습니다. – bird

관련 문제