save-System.Net.E-mail.MailMessage als .msg-Datei

Baue ich eine Anwendung, wo ich bin verpflichtet, erstellen ein MailMessage (System.Net.E-mail.MailMessage) und speichern Sie es auf der Festplatte .msg Endung nicht .eml

Unten ist die Methode, die ich verwende zum speichern einer MailMessage als .msg-Datei:

   public static void Save(MailMessage Message, string FileName)
    {
        Assembly assembly = typeof(SmtpClient).Assembly;
        Type _mailWriterType =
          assembly.GetType("System.Net.Mail.MailWriter");

        using (FileStream _fileStream =
               new FileStream(FileName, FileMode.Create))
        {
            //Get reflection info for MailWriter contructor
            ConstructorInfo _mailWriterContructor =
                _mailWriterType.GetConstructor(
                    BindingFlags.Instance | BindingFlags.NonPublic,
                    null,
                    new Type[] { typeof(Stream) },
                    null);

            //Construct MailWriter object with our FileStream
            object _mailWriter =
              _mailWriterContructor.Invoke(new object[] { _fileStream });

            //Get reflection info for Send() method on MailMessage
            MethodInfo _sendMethod =
                typeof(MailMessage).GetMethod(
                    "Send",
                    BindingFlags.Instance | BindingFlags.NonPublic);

            //Call method passing in MailWriter
            _sendMethod.Invoke(
                Message,
                BindingFlags.Instance | BindingFlags.NonPublic,
                null,
                new object[] { _mailWriter, true },
                null);

            //Finally get reflection info for Close() method on our MailWriter
            MethodInfo _closeMethod =
                _mailWriter.GetType().GetMethod(
                    "Close",
                    BindingFlags.Instance | BindingFlags.NonPublic);

            //Call close method
            _closeMethod.Invoke(
                _mailWriter,
                BindingFlags.Instance | BindingFlags.NonPublic,
                null,
                new object[] { },
                null);
        }
    }

Aber die gespeicherten msg-Datei nicht öffnen, und unten ist die Fehlermeldung:
Kann nicht geöffnet werden"die Datei xyz.msg.Die Datei ist möglicherweise nicht vorhanden, Sie haben eventuell keine Berechtigung, um es zu öffnen oder es kann sein, öffnen Sie von einem anderen Programm...."

Meine Frage ist: , Wie Sie sparen System.Net.E-mail.MailMessage als msg-Datei?

InformationsquelleAutor Gaby | 2010-03-11

Schreibe einen Kommentar