Chào mọi người,
Dạo này mình có làm một script Python nhỏ để tự động gửi các báo cáo Excel định kỳ qua email. Thấy khá hữu ích nên chia sẻ lên đây để anh em tham khảo, biết đâu có ai đang cần.
Chuyện là sếp mình yêu cầu gửi báo cáo doanh thu hàng tuần vào mỗi sáng thứ 2. Làm thủ công thì mất công mở file, đính kèm email, rồi lại quên trước quên sau. Mình nghĩ ngay đến việc dùng Python để tự động hóa việc này.
Về cơ bản, script sẽ làm các bước sau:
- Tìm file Excel báo cáo mới nhất trong một thư mục chỉ định.
- Mở file Excel đó (có thể là đọc dữ liệu hoặc chỉ lấy file đính kèm).
- Soạn email với nội dung có sẵn (ví dụ: tiêu đề, lời chào, tóm tắt nhanh).
- Đính kèm file báo cáo Excel vào email.
- Gửi email đến danh sách người nhận đã định nghĩa trước.
Để làm được việc này, mình chủ yếu dùng 2 thư viện:
pandas: Để đọc và xử lý dữ liệu Excel nếu cần.smtplibvàemail: Để gửi email.
Ví dụ một đoạn code đơn giản để gửi email:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
msg = MIMEMultipart()
msg['From'] = 'your_email@gmail.com'
msg['To'] = 'recipient@example.com'
msg['Subject'] = 'Bao cao hang tuan'
body = "Day la bao cao doanh thu tuan nay."
msg.attach(MIMEText(body, 'plain'))
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login('your_email@gmail.com', 'your_password')
text = msg.as_string()
server.sendmail('your_email@gmail.com', 'recipient@example.com', text)
server.quit()
Tất nhiên, đây chỉ là phần gửi email cơ bản. Mình còn phải thêm phần lấy file, xử lý file, quản lý danh sách người nhận, và quan trọng là cách xử lý lỗi nữa.
Anh em nào đã từng làm hoặc có kinh nghiệm về mảng này thì vào chia sẻ thêm nhé. Hoặc nếu có ai muốn tìm hiểu sâu hơn thì mình có thể trao đổi thêm.