Пример #1
0
        //public async void extractAndConvertAttachements(string origMsgPath, string destMsgPath)
        //{
        //    MsgReader.Reader reader = new MsgReader.Reader();

        //    string msgFile = origMsgPath;
        //    string attachementDestDir = destMsgPath + "_bijlages";

        //    if (!Directory.Exists(attachementDestDir))
        //    {
        //        Directory.CreateDirectory(attachementDestDir);
        //    }

        //    string[] outputFiles = reader.ExtractToFolder(msgFile, attachementDestDir);

        //    FileConverter.ConvertConfig convertConfig = new FileConverter.ConvertConfig()
        //    {
        //        ProcessOutlookMsg = true,
        //        ProcessWord = true,
        //        ProcessPowerpoint = true,
        //        ProcessExcel = true,
        //        ProcessImages = true,
        //        RootDir = attachementDestDir,
        //        OutputDir = attachementDestDir + "_pdf",
        //        Filter = "*",
        //    };


        //    FileConverter outlookFileConverter = new OutlookFileConverter(log);
        //    await outlookFileConverter.processInBackgroundAsync(convertConfig);

        //    FileConverter officeFileConverter = new OfficeFileConverter(log);

        //    await officeFileConverter.processInBackgroundAsync(convertConfig);

        //    FileConverter fileTransferrer = new ImageFileConverter(log);
        //    await fileTransferrer.processInBackgroundAsync(convertConfig);
        //}

        private bool parseUsingEAMail(string path)
        {
            this.Path = path;
            if (string.IsNullOrEmpty(Path))
            {
                throw new FileNotFoundException("Path not set");
            }

            if (File.Exists(Path) == false)
            {
                throw new FileNotFoundException($"File {Path} not found.");
            }

            ParsedMsgMessage parsedMsgMessage = new ParsedMsgMessage();

            Mail mail = new Mail("TryIt");

            //parsedMsgMessage.Mail = mail;

            try
            {
                mail.LoadOMSG(Path);
            }
            catch (Exception ex)
            {
                return(false);
            }

            parsedMsgMessage.Sender       = mail.From.ToString();
            parsedMsgMessage.To_formatted = "";

            foreach (var mailAddress in mail.To)
            {
                parsedMsgMessage.To.Add(mailAddress.ToString());
                parsedMsgMessage.To_formatted += mailAddress.ToString() + "; ";
            }

            foreach (var mailAddress in mail.Cc)
            {
                parsedMsgMessage.CC.Add(mailAddress.ToString());
                parsedMsgMessage.CC_formatted += mailAddress.ToString() + "; ";
            }

            parsedMsgMessage.Subject  = mail.Subject;
            parsedMsgMessage.BodyText = mail.TextBody;
            parsedMsgMessage.BodyHtml = mail.HtmlBody;

            foreach (var mailAttachment in mail.Attachments)
            {
                parsedMsgMessage.AttachementNames.Add(mailAttachment.Name);
                parsedMsgMessage.AttachementNames_formatted += mailAttachment.Name + "; ";
            }

            return(true);
        }
Пример #2
0
        private bool parseUsingMsgReader(string path)
        {
            if (!File.Exists(path))
            {
                // TODO: logging
                return(false);
            }

            MsgReader.Outlook.Storage.Message msg = null;
            try
            {
                msg = new MsgReader.Outlook.Storage.Message(path);
            }
            catch (Exception ex)
            {
                return(false);
            }

            using (msg)
            {
                ParsedMsgMessage parsedMsgMessage = new ParsedMsgMessage();

                parsedMsgMessage.Sender = msg.Sender.DisplayName + "<" + msg.Sender.Email + ">";

                parsedMsgMessage.To_formatted = msg.GetEmailRecipients(Storage.Recipient.RecipientType.To, false, false);
                parsedMsgMessage.CC_formatted = msg.GetEmailRecipients(Storage.Recipient.RecipientType.Cc, false, false);
                parsedMsgMessage.Subject      = msg.Subject;
                parsedMsgMessage.BodyHtml     = msg.BodyHtml;
                parsedMsgMessage.BodyRtf      = msg.BodyRtf;
                parsedMsgMessage.BodyText     = msg.BodyText;

                parsedMsgMessage.AttachementNames_formatted = msg.GetAttachmentNames();

                //this.headers = msg.Headers;

                parsedMsgMessage.SentOn               = msg.SentOn;
                parsedMsgMessage.ReceivedOn           = msg.ReceivedOn;
                parsedMsgMessage.CreationTime         = msg.CreationTime;
                parsedMsgMessage.LastModificationTime = msg.LastModificationTime;

                foreach (var msgAttachment in msg.Attachments)
                {
                    MsgReader.Outlook.Storage.Attachment ss;

                    if (msgAttachment is MsgReader.Outlook.Storage.Attachment)
                    {
                        var attach = (MsgReader.Outlook.Storage.Attachment)msgAttachment;
                        parsedMsgMessage.AttachementNames.Add(attach.FileName);
                    }
                    else if (msgAttachment is MsgReader.Outlook.Storage.Message)
                    {
                        var attach = (MsgReader.Outlook.Storage.Message)msgAttachment;
                        parsedMsgMessage.AttachementNames.Add(attach.FileName);
                    }
                }
                //extractAndConvertAttachements(path);


                //                msgAsText = $@"
                //FROM: {from}
                //SENT ON: {sentOn}
                //TO: {recipientsTo}
                //CC: {recipientsCC}
                //SUBJECT: {subject}
                //HTMLBODY: {htmlBody}
                //RTFBODY: {rtfBody}
                //TXTBODY: {textBody}
                //ATTN: {attachementNames}
                //CREATIONTIME: {creationTime}
                //RECV_ON: {receivedOn}
                //MOD_DATE: {lastModificationTime}";
            }
            return(true);
        }