QuocNguyen

0 %
Nguyễn Hữu Quốc
- HR-Admin Excutive
- IT Helpdesk
  • Residence:
    Việt Nam
  • City:
    Bình Dương
Knowledge
C&B, BHXH, PIT...
Admin
IT Helpdesk
Dịch thuật Trung - Việt
Web Template

Tạo đoạn mã gởi email báo cáo hằng ngày và cách thiết lập bằng Python

24/07/2024

Tự động gửi báo cáo email hàng ngày bằng Python bao gồm một số bước:

  1. Thiết lập Môi trường: Cài đặt các thư viện cần thiết.
  2. Tạo Nội dung Email: Tạo hoặc thu thập dữ liệu để đưa vào báo cáo.
  3. Cấu hình Máy chủ Email: Sử dụng máy chủ SMTP để gửi email.
  4. Tự động hóa Kịch bản: Lên lịch chạy kịch bản hàng ngày.

Dưới đây là hướng dẫn từng bước với một ví dụ kịch bản để bạn bắt đầu.

Bước 1: Thiết lập Môi trường

Đầu tiên, cài đặt các thư viện Python cần thiết. Bạn sẽ cần smtplibemail để gửi email, và có thể cần pandas nếu bạn cần tạo báo cáo từ dữ liệu.

pip install pandas

Bước 2: Tạo Nội dung Email

Tạo một hàm để tạo nội dung cho báo cáo hàng ngày của bạn. Điều này có thể là lấy dữ liệu từ cơ sở dữ liệu, xử lý tệp hoặc bất cứ điều gì khác. Đây là một ví dụ đơn giản tạo báo cáo cơ bản từ một DataFrame.

import pandas as pd

def generate_report():
# Dữ liệu mẫu
data = {
'Ngày': ['2024-07-21', '2024-07-22', '2024-07-23'],
'Doanh số': [100, 150, 200]
}
df = pd.DataFrame(data)
# Chuyển DataFrame sang HTML
report_html = df.to_html(index=False)
return report_html

Bước 3: Cấu hình Máy chủ Email

Thiết lập hàm để gửi email sử dụng các thư viện smtplibemail.

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

def send_email(subject, body, to_email, from_email, smtp_server, smtp_port, login, password):
# Tạo thông điệp email
msg = MIMEMultipart()
msg['From'] = from_email
msg['To'] = to_email
msg['Subject'] = subject

# Đính kèm nội dung với HTML
msg.attach(MIMEText(body, 'html'))

# Gửi email
try:
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls()
server.login(login, password)
server.sendmail(from_email, to_email, msg.as_string())
print("Email gửi thành công")
except Exception as e:
print(f"Gửi email thất bại: {e}")

Bước 4: Kết hợp Tất cả

Bây giờ, kết hợp tất cả vào một kịch bản tạo báo cáo và gửi nó qua email.

def main():
# Tạo báo cáo
report = generate_report()

# Chi tiết email
subject = "Báo cáo Doanh số Hàng ngày"
to_email = "[email protected]"
from_email = "[email protected]"
smtp_server = "smtp.example.com"
smtp_port = 587
login = "[email protected]"
password = "your_password"

# Gửi email
send_email(subject, report, to_email, from_email, smtp_server, smtp_port, login, password)

if __name__ == "__main__":
main()

Bước 5: Tự động hóa Kịch bản

Để chạy kịch bản này hàng ngày, bạn có thể sử dụng bộ lập lịch. Trên Windows, bạn có thể sử dụng Task Scheduler, và trên Linux hoặc macOS, bạn có thể sử dụng cron jobs.

Sử dụng Cron trên Linux/macOS

  1. Mở trình chỉnh sửa crontab:

crontab -e

  1. Thêm dòng sau để chạy kịch bản hàng ngày lúc 8 giờ sáng:

0 8 * * * /usr/bin/python3 /path/to/your/script.py

Sử dụng Task Scheduler trên Windows

  1. Mở Task Scheduler.
  2. Tạo một Basic Task mới.
  3. Đặt kích hoạt là hàng ngày và chỉ định thời gian.
  4. Đối với hành động, chọn “Start a Program” và duyệt tới tệp thực thi Python của bạn.
  5. Thêm đường dẫn tới kịch bản của bạn làm tham số.

Xong rồi! Bây giờ bạn có một kịch bản sẽ tự động gửi báo cáo email hàng ngày. Đảm bảo kiểm tra kỹ lưỡng để xử lý bất kỳ vấn đề tiềm ẩn nào như sự cố mạng hoặc địa chỉ email không hợp lệ.

Posted in TechnologyTags:
Write a comment