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
smtplibvàemailcó sẵn trong Python
Ý tưởng chính:
- Tạo hoặc lấy dữ liệu báo cáo (ví dụ: đọc file Excel bằng pandas).
- 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).
- 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!