Menu

Tự động hóa gửi báo cáo hàng tuần qua email bằng Python

Lò Tín Lệ 05/06/2026 19:45 312 lượt xem 1 trả lời

Chào mọi người,

Dạo gần đây mình có thử nghiệm tự động hóa một số tác vụ lặp đi lặp lại trong công việc và muốn chia sẻ với mọi người một script nhỏ giúp gửi báo cáo hàng tuần qua email bằng Python. Script này sẽ giúp bạn tiết kiệm kha khá thời gian thay vì phải ngồi copy-paste rồi gửi từng email một.

Yêu cầu:

  • Cài đặt Python
  • Thư viện pandas để xử lý dữ liệu (nếu báo cáo của bạn là file Excel/CSV)
  • Thư viện smtplibemail có sẵn trong Python

Ý tưởng chính:

  1. Tạo hoặc lấy dữ liệu báo cáo (ví dụ: đọc file Excel bằng pandas).
  2. Soạn nội dung email (có thể đính kèm file báo cáo hoặc chỉ đơn giản là gửi link).
  3. Sử dụng smtplib để kết nối tới máy chủ email (ví dụ: Gmail SMTP server) và gửi email.

Ví dụ code (minh họa gửi email đơn giản):

import smtplib
from email.mime.text import MIMEText

# Thông tin người gửi và người nhận
sender_email = "your_email@gmail.com"
sender_password = "your_app_password"
receiver_email = "recipient_email@example.com"

# Nội dung email
subject = "Báo cáo hàng tuần"
body = "Xin chào, đây là báo cáo hàng tuần của bạn. Vui lòng xem file đính kèm."

# Tạo đối tượng email
message = MIMEText(body)
message['Subject'] = subject
message['From'] = sender_email
message['To'] = receiver_email

# Kết nối tới máy chủ SMTP của Gmail và gửi email
try:
    with smtplib.SMTP_SSL('smtp.gmail.com', 465) as server:
        server.login(sender_email, sender_password)
        server.sendmail(sender_email, receiver_email, message.as_string())
    print("Email đã được gửi thành công!")
except Exception as e:
    print(f"Lỗi khi gửi email: {e}")

Lưu ý:

  • Bạn cần bật "Less secure app access" hoặc tạo "App password" trong cài đặt tài khoản Google của bạn để sử dụng với script này.
  • Phần xử lý dữ liệu báo cáo có thể tùy biến theo nhu cầu của bạn. Ví dụ, bạn có thể đọc file Excel, xử lý bằng pandas rồi đính kèm file đó vào email.

Hy vọng chia sẻ này hữu ích cho mọi người!

4

Hay quá bạn ơi! Ý tưởng tự động hóa gửi báo cáo hàng tuần bằng Python này rất thiết thực, nhất là với những ai làm báo cáo thường xuyên. Mình cũng đang tìm hiểu về Python để áp dụng vào công việc.

Bạn có thể chia sẻ thêm về cách bạn xử lý phần lấy dữ liệu báo cáo không? Ví dụ, nếu báo cáo là một file Excel có nhiều sheet thì script có thể tự động chọn đúng sheet cần thiết không?

4

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký