Ejemplo n.º 1
0
        private void PopulateEml(string emlFilePath)
        {
            try
            {
                CDO.Message  msg    = new CDO.MessageClass();
                ADODB.Stream stream = new ADODB.StreamClass();

                stream.Open(Type.Missing, ADODB.ConnectModeEnum.adModeUnknown, ADODB.StreamOpenOptionsEnum.adOpenStreamUnspecified, String.Empty, String.Empty);
                stream.LoadFromFile(emlFilePath);
                stream.Flush();
                msg.DataSource.OpenObject(stream, "_Stream");
                msg.DataSource.Save();
                stream.Close();

                _emlFile = new Eml
                {
                    From    = msg.From,
                    To      = msg.To,
                    CC      = msg.CC,
                    Body    = string.IsNullOrEmpty(msg.HTMLBody) ? msg.TextBody : msg.HTMLBody,
                    Subject = msg.Subject
                };
            }
            catch (Exception ex)
            { }
        }
Ejemplo n.º 2
0
        internal static CDO.Message ParseEmlFile(string file)
        {
            // Check file exists and is readable
            if (!File.Exists(file))
            {
                return(null);
            }
            try
            {
                File.Open(file, FileMode.Open, FileAccess.Read).Dispose();
            }
            catch (IOException)
            {
                return(null);
            }

            CDO.Message  msg    = new CDO.MessageClass();
            ADODB.Stream stream = new ADODB.StreamClass();

            stream.Open(Type.Missing, ADODB.ConnectModeEnum.adModeUnknown, ADODB.StreamOpenOptionsEnum.adOpenStreamUnspecified, string.Empty, string.Empty);
            stream.LoadFromFile(file);
            stream.Flush();
            msg.DataSource.OpenObject(stream, "_Stream");
            msg.DataSource.Save();

            stream.Close();

            if (string.IsNullOrWhiteSpace(msg.Sender) &&
                string.IsNullOrWhiteSpace(msg.To) &&
                string.IsNullOrWhiteSpace(msg.From) &&
                string.IsNullOrWhiteSpace(msg.TextBody) &&
                string.IsNullOrWhiteSpace(msg.HTMLBody) &&
                string.IsNullOrWhiteSpace(msg.From)
                )
            {
                return(null);
            }

            return(msg);
        }
Ejemplo n.º 3
0
        //SaveToFile
        public bool SaveToFile(object Stream, object FilePath)
        {
            Application.DoEvents();
            // Try
            ADODB.StreamClass objStream = new ADODB.StreamClass();

            //objStream = Interaction.CreateObject("ADODB.Stream");
            objStream.Type = ADODB.StreamTypeEnum.adTypeBinary;

            objStream.Open();
            objStream.Write(Stream);
            objStream.SaveToFile(FilePath.ToString(), ADODB.SaveOptionsEnum.adSaveCreateOverWrite);
            objStream.Close();
            objStream = null;
            if (Information.Err().Number != 0)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            string filename = @"C:\Users\User1\Desktop\a.eml";

            //string content = File.ReadAllText(filename);

            //dynamic msg = new Message();
            //msg.DataSource.Open(filename);

            //dynamic msg = Activator.CreateInstance(Type.GetTypeFromProgID("CDO.Message"));
            //msg.Open(filename);

            //dynamic stream = Activator.CreateInstance(Type.GetTypeFromProgID("ADODB.Stream"));
            //stream.Open();
            //stream.LoadFromFile(filename);
            //stream.Position = 0;
            //dynamic msg = Activator.CreateInstance(Type.GetTypeFromProgID("CDO.Message"));
            //msg.DataSource.OpenObject(stream, "_Stream");
            //msg.Attachments.DeleteAll();
            //msg.DataSource.SaveToObject(stream, "_Stream");
            ////msg.DataSource.Save();
            //stream.Position = 0;
            //stream.SaveToFile(filename, adSaveCreateOverWrite);
            //stream.Close();

            ADODB.StreamClass stream = new ADODB.StreamClass();
            stream.Open();
            stream.LoadFromFile(filename);
            CDO.MessageClass msg = new CDO.MessageClass();
            msg.DataSource.OpenObject(stream, "_Stream");
            msg.Attachments.DeleteAll();
            msg.DataSource.SaveToObject(stream, "_Stream");
            stream.SaveToFile(filename, ADODB.SaveOptionsEnum.adSaveCreateOverWrite);
            stream.Close();
            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(msg);
            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(stream);
        }