2008-10-21 27 views
5

Công ty của tôi yêu cầu tôi sử dụng Outlook cho E-mail của tôi. Outlook hầu như không có cách nào tôi muốn làm điều đó và nó làm tôi thất vọng rất nhiều. (Tôi không cố gắng để bắt đầu một cuộc chiến tranh lửa ở đây, nó phải làm chính xác những gì hàng ngàn CEO muốn làm, nhưng tôi không phải là CEO.)Lưu/Sắp xếp/Tìm kiếm Outlook E-mail bên ngoài Outlook

Tôi muốn có thể tự động trích xuất hàng ngàn của E-mail và tệp đính kèm hiện có trong tài khoản Outlook của tôi và lưu chúng theo định dạng lưu trữ thay thế của riêng tôi, nơi tôi có thể dễ dàng tìm kiếm và sắp xếp chúng theo cách tôi muốn. (Tôi không yêu cầu đề xuất cho định dạng mới.)

Có thể một số chương trình nguồn mở tốt đẹp đã có thể thực hiện việc này ... điều đó thật tuyệt. Làm ơn cho tôi biết.

Nếu không, làm cách nào để có được nội dung thư và tệp đính kèm mà không phải trải qua bộ sưu tập khổng lồ theo cách thủ công? Ngay cả khi tôi chỉ có thể nhận được nội dung tin nhắn và tên của các tệp đính kèm, điều đó sẽ là đủ. Có tài liệu về định dạng lưu trữ thư Outlook không? Có cách nào để truy vấn Outlook cho dữ liệu không?

Có thể có một phương pháp thay thế mà tôi chưa xem xét?

Ngôn ngữ ưa thích của tôi để làm điều này là C#, nhưng tôi có thể sử dụng ngôn ngữ khác nếu cần.

Trả lời

6

Outlook Redemption là điều tốt nhất hiện đang sử dụng mà tôi đã tìm thấy. Nó sẽ cho phép bạn nhận được vào các tin nhắn và trích xuất các tập tin đính kèm và các cơ quan thông điệp. Tôi đang sử dụng nó ngay bây giờ để làm điều đó.

Đây là một số mã tôi sử dụng trong một lớp học. Tôi bao gồm hàm tạo và hàm xử lý mà tôi sử dụng để lưu các tệp đính kèm. Tôi cắt mã cụ thể theo nhu cầu của tôi nhưng bạn có thể có ý tưởng về những gì cần sử dụng ở đây.

private RDOSession _MailSession = new RDOSession(); 
    private RDOFolder _IncommingInbox; 
    private RDOFolder _ArchiveFolder; 
    private string _SaveAttachmentPath; 

    public MailBox(string Logon_Profile, string IncommingMailPath, 
        string ArchiveMailPath, string SaveAttPath) 
    { 
     _MailSession.Logon(Logon_Profile, null, null, true, null, null); 
     _IncommingInbox = _MailSession.GetFolderFromPath(IncommingMailPath); 
     _ArchiveFolder = _MailSession.GetFolderFromPath(ArchiveMailPath); 
     _SaveAttachmentPath = SaveAttPath; 
    } 
public void ProcessMail() 
     { 

      foreach (RDOMail msg in _IncommingInbox.Items) 
      { 
       foreach (RDOAttachment attachment in msg.Attachments) 
       { 
        attachment.SaveAsFile(_SaveAttachmentPath + attachment.FileName); 
        } 
       } 
       if (msg.Body != null) 
       { 
        ProcessBody(msg.Body); 
       } 

      } 

     } 

chỉnh sửa: Đây là cách tôi gọi nó và những gì được truyền

MailBox pwaMail = new MailBox("Self Email User", @"\\Mailbox - Someone\Inbox", 
           @"\\EMail - Incomming\Backup", @"\\SomePath"); 
Các vấn đề liên quan