Chào các bác, dạo này em bận quá nên hay bị quên gửi báo cáo hàng tuần cho sếp. Tình cờ em tìm hiểu được cách tự động hóa việc này bằng Python và Outlook, thấy khá hay nên chia sẻ lại cho mọi người cùng tham khảo.
Thực ra, việc tự động gửi email báo cáo không quá phức tạp. Chúng ta sẽ cần một file báo cáo (ví dụ: file Excel) và một script Python để thực hiện các công việc sau:
- Mở file báo cáo Excel.
- Trích xuất dữ liệu cần thiết (nếu cần).
- Định dạng email (tiêu đề, nội dung).
- Đính kèm file báo cáo.
- Gửi email thông qua Outlook.
Dưới đây là một đoạn code mẫu đơn giản để các bác hình dung:
import pandas as pd
import win32com.client as win32
# Đọc file Excel báo cáo
df = pd.read_excel("bao_cao_tuan.xlsx")
# Tạo đối tượng Outlook
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
# Cấu hình email
mail.To = 'sep@example.com'
mail.Subject = 'Báo cáo Tuần - ' + pd.Timestamp.today().strftime('%Y-%m-%d')
mail.HTMLBody = '''
Dear Sếp,
Kính gửi Sếp báo cáo tuần.
Trân trọng,
[Tên của bạn]
'''
# Đính kèm file báo cáo
attachment = "C:\path\to\your\bao_cao_tuan.xlsx"
mail.Attachments.Add(attachment)
# Gửi email
mail.Send()
print("Đã gửi báo cáo thành công!")
Lưu ý:
- Các bác cần cài đặt thư viện
pandasvàpywin32:pip install pandas pywin32 - Thay đổi đường dẫn file và địa chỉ email cho phù hợp.
- Có thể tùy biến nội dung email và cách trích xuất dữ liệu từ file Excel theo nhu cầu.
Hy vọng chia sẻ này giúp ích cho các bác nào đang cần tự động hóa công việc gửi báo cáo hàng tuần. Nếu có thắc mắc gì, cứ hỏi em nhé!