2013-03-21 15 views
5

Tiếp theo từ mã vạch hereSave 'MailItem' đối tượng như .msg nộp

Làm thế nào tôi có thể lưu các đối tượng MailItem như một tập tin .msg?

Hoặc cách khác để đặt điều này là: Làm cách nào để tạo tệp .msg bằng các thuộc tính (người gửi, cc, bcc, chủ đề, nội dung, v.v.) của đối tượng MailItem?

Trả lời

5
mailItem.SaveAs(savepath); 

đâu mailItem là Outlook MailItem và savepath là ví dụ:

String savepath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\" + filename + ".msg"; 

Nếu bạn muốn sử dụng các đối tượng MailItem như tên tập tin bạn có thể muốn loại bỏ ký tự không hợp lệ cho tên tập tin:

String filename = mailItem.Subject; 
string invalid = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars()); 

foreach (char c in invalid) 
{ 
    filename = filename.Replace(c.ToString(), ""); 
} 
+0

thanks Toon, Dmitry đã nhận nó đầu tiên mặc dù – Mikk

+1

Bạn đang chào đón, tôi chỉ viết một triển vọng khá lớn add-in bản thân mình mà cũng chứa mã này. –

+0

Tôi sẽ chọn câu trả lời của bạn để biết thêm thông tin về việc tăng vấn đề ký tự không hợp lệ khi sử dụng chủ đề làm tên tệp. Cảm ơn một lần nữa Toon! – Mikk

2

Sử dụng MailItem.SaveAs (..., olMsg) - xem http://msdn.microsoft.com/en-us/library/office/bb175283(v=office.12).aspx. Hoặc bạn có nghĩa là bạn muốn tạo một tệp MSG từ đầu mà không có đối tượng MailItem thực tế đang sống trong một trong các thư mục Outlook không? Có nghĩa là bạn muốn tạo một tệp MSG từ đầu. Trong trường hợp đó, bạn có thể sử dụng Redemption và phương thức RDOSession.CreateMessageFromMsgFile (trả về đối tượng RDOMail).

+0

Cảm ơn bạn Dmitry! đây là những gì tôi đã mong đợi >> Sử dụng MailItem.SaveAs (..., olMsg)! – Mikk

+0

sẽ là tốt đẹp nếu điều này là trong C#. Hiện tại đây là đối tượng COM dựa. –

+0

Chính xác thì bạn đang gặp khó khăn khi dịch C#? –