Frage

Ich habe ein System.net.mail MailMessage-Objekt erhalten und möchte es nach dem Senden an einem Dokumentsatz speichern. Dieses Objekt enthält Absender, bis CC, HTML-Körper und Anhänge.

Wie kann ich es in einer Dokumentation speichern?

Ich habe einige Möglichkeiten gefunden, "Save" -Methoden zu verwenden, aber sie unterstützen nur den lokalen Pfad wie diesen auf codplex .

Am Ende möchte ich nur ein .eml oder .msg in meinem Ordner.

Dank Ihrer Antwort habe ich diese Arbeit in Ordnung: generasacodicetagpre.

War es hilfreich?

Lösung

Judging from the link you reported, the Save method calls a FileStream object. Being a stream, the FileStream can be replaced by a MemoryStream.

// Create MemoryStream object
MemoryStream stream = new MemoryStream();

// Get reflection info for MailWriter contructor
// [omitted for brevity]

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

Then, it is just a matter of saving this stream to your document set, like this:

SPFolder ds = web.GetFolder("http://server/documentsetname");
byte[] data = new byte[stream.Length];
stream.Read(data, 0, (int)stream.Length); //make sure this is reliable, otherwise find other ways to convert to a byte array
ds.Files.Add("http://server/shared%20documents/documentsetname/your.msg", data);
ds.Update();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top