Manage MS Contacts

Quản lý danh bạ hiệu quả là rất quan trọng đối với các chuyên gia và doanh nghiệp. Nó đảm bảo rằng bạn có thể dễ dàng tìm và kết nối với những người phù hợp khi cần thiết. Dù bạn đang lên lịch họp, gửi email hay chia sẻ tài liệu, việc có danh bạ được tổ chức và cập nhật có thể cải thiện đáng kể năng suất của bạn.

Tệp MSG là định dạng thường được sử dụng để lưu trữ tin nhắn email, danh bạ và các mục khác. Việc trích xuất thông tin danh bạ từ các tệp MSG của Outlook theo cách lập trình có thể là một nhiệm vụ quan trọng cho nhiều kịch bản, chẳng hạn như di chuyển dữ liệu hoặc xử lý dữ liệu tự động. Trong bài viết này, chúng ta sẽ khám phá cách tải, trích xuất và lưu thông tin danh bạ từ các tệp MSG của Outlook.

Bắt Đầu Với API C# Tiên Tiến

Để làm việc với các tệp MSG, chúng ta sẽ sử dụng Aspose.Email for .NET. Đây là một thư viện xử lý và quản lý email mạnh mẽ và linh hoạt, cung cấp cho các nhà phát triển một bộ công cụ và chức năng toàn diện để làm việc với các tin nhắn email, nhiệm vụ, lịch, danh bạ và các nhiệm vụ liên quan đến email khác trong các ứng dụng .NET. Vì vậy, trước khi bắt đầu, hãy đảm bảo rằng bạn đã cài đặt và tham chiếu Aspose.Email trong dự án của bạn. Nếu bạn chưa làm điều đó, bạn có thể tải xuống DLL của nó hoặc cài đặt từ NuGet.

Tải Danh Bạ từ Tệp MSG

Để trích xuất thông tin danh bạ từ một tệp MSG, chúng ta cần tải tệp vào một đối tượng MapiMessage bằng cách sử dụng phương thức MapiMessage.Load của Aspose.Email. Bạn có thể tải một danh bạ vào MapiMessage và xử lý nó như một tin nhắn MAPI bình thường: đọc thuộc tính, sửa đổi, lưu, thêm vào kho lưu trữ, gửi. Mẫu mã dưới đây sẽ cho bạn thấy cách tải và xử lý các danh bạ Outlook:

  1. Tải một mục danh bạ hiện có trong tệp MSG bằng cách sử dụng phương thức MapiMessage.Load. Phương thức này đọc nội dung của tệp MSG được chỉ định và tạo một đối tượng MapiMessage đại diện cho tin nhắn email.
  2. Đặt nội dung thân HTML bằng cách sử dụng phương thức SetBodyContent để thay thế nội dung.
  3. Chỉ định tham số BodyContentType.Html cho biết rằng nội dung cung cấp là ở định dạng HTML. Điều này đảm bảo rằng nội dung được diễn giải đúng là HTML khi được xem bởi các khách hàng email.
  4. Lưu đối tượng MapiMessage đã sửa đổi trở lại tệp MSG bằng cách sử dụng phương thức Save.
var msg = MapiMessage.Load("Lynna M. Dyer.msg");
msg.SetBodyContent("<!DOCTYPE html><html><body><h1>Lynna M. Dyer</h1></body></html>", BodyContentType.Html);
msg.Save("Lynna M. Dyer.msg");

Trích Xuất Thông Tin Danh Bạ

Khi chúng ta đã tải tệp MSG, chúng ta có thể trích xuất chi tiết danh bạ bằng cách sử dụng lớp MapiContact. MapiContact cung cấp các thuộc tính tiện lợi để truy cập các trường danh bạ cụ thể. Mẫu mã được cung cấp minh họa cách trích xuất và hiển thị thông tin danh bạ từ một email MSG.

  1. Bắt đầu bằng cách kiểm tra xem MSG có phải là một mục danh bạ hay không. Sử dụng thuộc tính SupportedType cho biết loại mục Outlook.
  2. Chuyển đổi đối tượng msg thành một đối tượng MapiContact. Sự chuyển đổi này cho phép truy cập vào các thuộc tính và phương thức chuyên biệt dành cho các mục danh bạ.
  3. Lấy và hiển thị thông tin danh bạ. Trong ví dụ này, chúng ta truy cập các thuộc tính DisplayName, Email, CompanyName, và Title của đối tượng MapiContact, đại diện cho tên, địa chỉ email, tên công ty và chức vụ của danh bạ. Bạn có thể truy cập các thuộc tính khác của đối tượng MapiContact theo yêu cầu của bạn.
if (msg.SupportedType == MapiItemType.Contact)
{
    var contact = (MapiContact)msg.ToMapiMessageItem();

    Console.WriteLine(contact.NameInfo.DisplayName);
    Console.WriteLine(contact.ElectronicAddresses.Email1);
    Console.WriteLine(contact.ProfessionalInfo.CompanyName);
    Console.WriteLine(contact.ProfessionalInfo.Title);
}

Lưu Ảnh Danh Bạ

Nếu tệp MSG chứa một ảnh của danh bạ, chúng ta có thể lưu nó vào một tệp bằng mã sau:

  1. Kiểm tra xem danh bạ có ảnh hay không. Điều này được thực hiện bằng cách đánh giá xem thuộc tính contact.Photo có khác null hay không.
  2. Nếu có ảnh, mã sẽ tiến hành lưu nó dưới dạng một tệp.
if (contact.Photo != null)
{
    System.IO.File.WriteAllBytes($"{contact.NameInfo.DisplayName}.{MapiContactPhotoImageFormat.Jpeg.ToString()}", contact.Photo.Data);
}

Lưu Danh Bạ vào VCF

Ngoài ra, thường thì cần chuyển đổi danh bạ từ MSG sang định dạng phổ quát hơn như VCARD. VCard (Tệp Danh Bạ Ảo) là một định dạng tệp chuẩn được sử dụng để lưu trữ thông tin danh bạ. Mẫu mã dưới đây minh họa cách lưu một mục danh bạ được đại diện bởi đối tượng danh bạ dưới dạng tệp VCard:

Mã sử dụng phương thức Save của đối tượng danh bạ để khởi động quá trình lưu danh bạ dưới dạng một VCard.

contact.Save("Lynna M. Dyer.vcf", ContactSaveFormat.VCard);

Tải danh bạ từ VCF

Bạn cũng có thể tải một tệp VCARD hiện có vào một đối tượng MapiContact. Mẫu mã dưới đây minh họa cách tải thông tin danh bạ từ một VCard và tạo một đối tượng MapiContact:

  1. Mã bắt đầu bằng cách sử dụng phương thức MapiContact.FromVCard để tải thông tin danh bạ từ một VCard.
  2. Biến contact lưu trữ đối tượng MapiContact mới được tạo, có thể được sử dụng để truy cập và thao tác chi tiết của danh bạ theo cách lập trình.
var contact = MapiContact.FromVCard("Lynna M. Dyer.vcf");

Kết Luận

Trong bài viết này, chúng ta đã khám phá cách trích xuất thông tin danh bạ từ các tệp MSG của Outlook theo cách lập trình bằng cách sử dụng Aspose.Email. Chúng ta đã đi qua quá trình tải một tệp MSG, trích xuất chi tiết danh bạ bằng lớp MapiContact và lưu danh bạ ở các định dạng khác nhau. Aspose.Email đơn giản hóa quá trình làm việc với các tệp MSG và cung cấp nhiều chức năng cho việc xử lý dữ liệu email.

Hãy nhớ chỉnh sửa các đường dẫn tệp và điều chỉnh mã để phù hợp với yêu cầu cụ thể của bạn. Tài liệu toàn diện của Aspose.Email documentation và diễn đàn cộng đồng hữu ích forums sẽ hỗ trợ bạn hơn nữa trong việc tận dụng khả năng của nó để trích xuất thông tin danh bạ một cách hiệu quả.

Xem Thêm