Outlook và tích hợp API – ví dụ tiện ích

Tiện ích Microsoft Outlook VSTO tích hợp API, Dropbox và SharePoint

Các tiện ích VSTO cho Microsoft Outlook có chung một nhiệm vụ: Outlook cần giao tiếp với một hệ thống bên ngoài Outlook. Đó có thể là REST API của hệ thống doanh nghiệp, Dropbox và SharePoint hoặc một nền tảng quản lý công việc. Trong mọi trường hợp, người dùng vẫn ở trong chương trình vốn được mở cả ngày, còn việc trao đổi dữ liệu diễn ra phía sau một nút bấm hoặc hoàn toàn tự động.

Nếu bạn cần một tiện ích tương tự, giá và quy trình làm việc được trình bày tại trang phát triển tiện ích Office.

Cập nhật liên hệ và gọi API sau khi gửi thư

Thực hiện trong quý III năm 2023.

Khách hàng yêu cầu một tiện ích VSTO nâng cao cho Microsoft Outlook được phát triển bằng C#. Tiện ích cải thiện chức năng email bằng cách tích hợp một biểu mẫu tùy chỉnh xuất hiện khi gửi thư, cho phép cập nhật ngay thông tin liên hệ và tương tác liền mạch với API bên ngoài.

Mục tiêu

Mục tiêu là đơn giản hóa việc cập nhật thông tin liên hệ và giao tiếp với hệ thống bên ngoài qua API ngay sau khi email được gửi, qua đó cải thiện độ chính xác dữ liệu và hiệu quả vận hành.

Các chức năng chính

  • Mở biểu mẫu tùy chỉnh: biểu mẫu xuất hiện khi nhấn nút gửi email, yêu cầu người dùng bổ sung và cập nhật thông tin.
  • Tích hợp API: sau khi cập nhật dữ liệu liên hệ, tiện ích gửi dữ liệu đã sửa cùng nội dung email và tệp đính kèm đến API được chỉ định bằng multipart/form-data.
  • Tích hợp liền mạch với email: bảo đảm quá trình gửi email tiếp tục hoạt động bình thường sau lời gọi API, giữ nguyên quy trình quen thuộc nhưng có thêm chức năng.
  • Thanh Ribbon (trình thiết kế trực quan): dễ sử dụng với giao diện trực quan.

Công nghệ sử dụng

  • VSTO (Visual Studio Tools for Office): dùng để tạo tiện ích Outlook trong hệ sinh thái Microsoft Office.
  • Ngôn ngữ lập trình C# (programiranje.co.rs): ngôn ngữ dùng để phát triển tiện ích.
  • REST API: cho phép tương tác với hệ thống bên ngoài để cập nhật và đồng bộ dữ liệu hiệu quả.

Nhận xét của khách hàng

★★★★★5/5

“Công việc tuyệt vời!!”


Tự động lưu trữ thư thành PDF

Thực hiện trong quý II năm 2025, tiếp tục bổ sung đến quý I năm 2026.

Tôi đã phát triển một tiện ích VSTO cho Microsoft Outlook để theo dõi một tài khoản được chọn, tự động chuyển mỗi thư đến thành một tài liệu PDF duy nhất cùng toàn bộ tệp đính kèm, rồi gửi tài liệu vào hệ thống doanh nghiệp của khách hàng. Người dùng không phải làm gì: thư vẫn đến như trước, còn việc lưu trữ diễn ra trong nền ngay trong chương trình nhân viên vốn mở cả ngày.

Thách thức lập trình

Phần khó nhất không phải tạo PDF mà là bắt được thư một cách đáng tin cậy. Sự kiện thư mới của Outlook có thể báo nhiều thư cùng lúc, xuất hiện trước khi thư tải xong từ máy chủ và trong một số trường hợp có thể báo hai lần cho cùng một thư. Ngoài ra, việc xử lý đối tượng Outlook phải nằm trên luồng chính, trong khi tạo và gửi PDF mất quá nhiều thời gian để thực hiện ở đó — nếu không, Outlook sẽ bị treo khi người dùng đang soạn thư trả lời.

Thách thức thứ hai là tệp đính kèm. Các tệp PDF gửi qua email thường bị lỗi hoặc được tạo bằng công cụ không tuân thủ tiêu chuẩn, khiến thư viện ghép tệp từ chối chúng. Giải pháp phải tiếp nhận được các tệp này thay vì dừng ở tài liệu lỗi đầu tiên.

Cách tổ chức giải pháp

  • Theo dõi một tài khoản – tiện ích chỉ theo dõi đúng hộp thư được chọn trong cài đặt và không tác động đến thư của các tài khoản khác trong cùng hồ sơ Outlook.
  • Khóa duy nhất của thư – việc nhận diện dựa trên mã định danh thư chuẩn đọc trực tiếp từ thuộc tính MAPI. Khi mã chưa xuất hiện, tiện ích chờ và thử lại; trong trường hợp cuối cùng, nó tính dấu vân tay từ người gửi, tiêu đề và thời gian nhận. Nhờ đó, cùng một thư không bao giờ bị xử lý hai lần.
  • Phân chia công việc theo luồng – việc đọc thư và tệp đính kèm vẫn nằm trên luồng chính theo yêu cầu của Outlook, còn tạo và gửi PDF diễn ra bất đồng bộ. Số công việc đồng thời được giới hạn để tiện ích không làm quá tải máy tính khi nhiều thư đến cùng lúc.
  • Một tài liệu thay cho nhiều tệp – nội dung thư được chuyển thành HTML kèm phần đầu thư (người gửi, người nhận, thời gian, tiêu đề), hình ảnh nhúng và danh sách tệp đính kèm, sau đó toàn bộ được in thành PDF. Các PDF đính kèm được ghép vào cùng tài liệu; những định dạng không thể hiển thị được liệt kê theo tên để vẫn ghi nhận sự tồn tại của chúng.
  • Sửa tệp PDF đính kèm bị lỗi – trước khi ghép, mỗi PDF được đưa qua công cụ sửa chữa trong hai lần với cài đặt khác nhau. Nếu vẫn không thành công, hệ thống dùng tệp gốc và không dừng toàn bộ công việc.
  • Công tắc trên thanh Outlook – một thẻ riêng có ô bật/tắt và nút cài đặt. Việc tắt công tắc cũng dừng các công việc đang chạy qua mã thông báo hủy.
  • Cài đặt kèm giải thích – mỗi cài đặt có mô tả trong một tệp riêng, nên hộp thoại tự giải thích ý nghĩa từng trường mà không cần hướng dẫn riêng.

Độ tin cậy và các trường hợp đặc biệt

Nhiều chi tiết chỉ bộc lộ trong sử dụng hằng ngày đã được xử lý: giải phóng đối tượng COM đúng cách để Outlook không còn treo trong bộ nhớ, giới hạn thời gian cho công cụ bên ngoài, xóa tệp tạm sau mỗi công việc và ghi nhật ký cho từng giai đoạn — từ nhận thư đến xác nhận tài liệu đã được tiếp nhận. Khi gửi thất bại, lỗi được ghi lại cùng thư chưa được xử lý, thay vì biến mất mà không có thông báo.

Khi nâng cấp phiên bản, các cài đặt đã nhập trước đó được giữ lại nên người dùng không phải cấu hình lại sau cập nhật.

Công nghệ sử dụng

C#, .NET Framework 4.8, tiện ích VSTO cho Outlook, Outlook Interop và thuộc tính MAPI, thanh tùy chỉnh (Ribbon XML), lập trình bất đồng bộ với giới hạn công việc song song và mã thông báo hủy, tạo PDF từ HTML, ghép và sửa tài liệu PDF, giao tiếp HTTP/JSON với hệ thống phía sau.

Kết quả

Khách hàng có một hệ thống lưu trữ không phụ thuộc vào sự tuân thủ của nhân viên. Thư và tệp đính kèm được đưa thành một tài liệu duy nhất trong hệ thống doanh nghiệp ngay khi đến, không cần tải xuống, in thành PDF rồi đính kèm thủ công. Tiện ích hoạt động âm thầm, có thể tắt bằng một cú nhấp và không thay đổi cách mọi người sử dụng Outlook.

Nhận xét của khách hàng

★★★★★5/5

“Hợp tác với Dejan rất tuyệt vời. Anh ấy chuyên nghiệp, đáng tin cậy, có chuyên môn cao và luôn bàn giao công việc chất lượng đúng hạn. Anh ấy giao tiếp rõ ràng, phản hồi nhanh trước các góp ý và thể hiện sự hiểu biết sâu sắc về yêu cầu dự án. Tôi sẵn lòng tiếp tục làm việc với anh ấy và nhiệt tình giới thiệu anh ấy cho các khách hàng khác.”


Dropbox, Excel và SharePoint từ Outlook

Thực hiện trong quý II năm 2024.

Khách hàng yêu cầu một tiện ích VSTO cho Microsoft Outlook (microsoft.com) để tự động hóa việc chuyển đổi và xử lý tệp từ Dropbox. Tiện ích tải các tệp CSV từ Dropbox, chuyển chúng sang định dạng XLSX trên máy tính người dùng và thực hiện các bước xử lý dữ liệu tiếp theo, bao gồm xuất một số trang tính Excel thành PDF. Sau khi người dùng nhấn nút, các tài liệu được gửi đến địa chỉ email chỉ định hoặc chia sẻ qua SharePoint.

Mục tiêu

Mục tiêu chính là đơn giản hóa việc xử lý định dạng tài liệu và tự động phân phối tệp, qua đó tăng hiệu quả công việc trong môi trường doanh nghiệp.

Các tính năng chính

  • Chuyển đổi tệp: tự động chuyển tệp CSV từ Dropbox sang định dạng XLSX trên máy tính cục bộ của người dùng.
  • Xử lý dữ liệu: trích xuất dữ liệu theo các tiêu chí ngày cụ thể để quản lý thông tin đúng thời điểm và phù hợp.
  • Xuất tài liệu: xuất các trang tính Excel thành PDF để chuẩn bị phân phối.
  • Tích hợp email và SharePoint: gửi tài liệu cuối cùng qua email hoặc tải lên SharePoint theo thao tác của người dùng.
  • Thanh Ribbon (trình thiết kế trực quan): dễ sử dụng với giao diện trực quan.

Công nghệ sử dụng

  • VSTO (Visual Studio Tools for Office): tích hợp tiện ích với Microsoft Outlook.
  • Ngôn ngữ lập trình C# (programiranje.co.rs): ngôn ngữ phát triển tiện ích.
  • Dropbox API: truy cập và quản lý các tệp lưu trên Dropbox.
  • Outlook và SharePoint: nền tảng gửi và chia sẻ tài liệu đã xử lý.

Tạo công việc trên Productive.io

Thực hiện trong quý IV năm 2024.

Dự án được thực hiện theo yêu cầu và phối hợp chặt chẽ với đội ngũ Aestus (aestus.hr), bảo đảm triển khai chính xác nhu cầu và tích hợp với nền tảng Productive.io (productive.io). Mục tiêu là phát triển một tiện ích VSTO cho phiên bản Microsoft Outlook trên máy tính, cho phép chuyển email thành công việc trên Productive.io. Tiện ích đã được kiểm thử trên Windows 10 và 11, sử dụng thành công Productive API (productive.io) để triển khai toàn bộ chức năng cần thiết.

Mục tiêu

Cho phép người dùng Outlook tạo công việc trên Productive.io trực tiếp từ email một cách hiệu quả, qua bảng bên tùy chỉnh và các thông báo kiểm tra dữ liệu.

Các chức năng chính

  • Tạo công việc: biểu tượng tạo công việc xuất hiện trong Outlook khi mở email. Nhấp vào biểu tượng sẽ mở bảng bên để nhập dữ liệu.
  • Kiểm tra dữ liệu: xác nhận các trường bắt buộc đã được điền trước khi tạo công việc.
  • Đưa nội dung email vào công việc: người gửi, tiêu đề, ngày và nội dung thư được tự động thêm vào mô tả công việc trên Productive.io.
  • Nhiều công việc: có thể tạo nhiều công việc từ một email.
  • Liên kết công việc: liên kết đến công việc đã tạo được thêm vào email.

Công nghệ sử dụng

  • Ngôn ngữ lập trình C# (programiranje.co.rs) và VSTO: phát triển tiện ích cho phiên bản Outlook trên máy tính.
  • Productive API: tích hợp để tạo và quản lý công việc.
  • Windows 10 và 11: kiểm thử khả năng tương thích trên các hệ điều hành hiện đại.

Nhận xét của khách hàng

★★★★★5/5

“Tin tuyệt vời là phiên bản 6 hoạt động rất tốt cả trên máy của chúng tôi lẫn máy của đồng nghiệp. Vậy có thể xem đây là phiên bản cuối ở thời điểm hiện tại. Cảm ơn bạn vì sự hợp tác đến nay và chúc bạn có thời gian vui vẻ tại Việt Nam! 😊”

Bạn cần một tiện ích tương tự?

Tất cả dự án trên trang này được xây dựng trên cùng nền tảng và theo cùng quy trình: trước hết là đặc tả, sau đó mới phát triển. Những gì nằm trong giá, những gì không bao gồm và cách cài đặt được trình bày tại trang phát triển tiện ích Office. Bạn có thể xem các dự án Excel, Word và PowerPoint khác trong nhóm tiện ích Office.