Gửi email tự động bằng Python

Gửi email tự động là một trong những ứng dụng thực tế hữu ích nhất: báo cáo hằng ngày, thông báo, nhắc nhở. Python có sẵn module smtplib để làm việc này.

Chuẩn bị

Bạn cần một tài khoản email hỗ trợ SMTP. Với Gmail và nhiều dịch vụ, nên tạo “mật khẩu ứng dụng” (app password) riêng thay vì dùng mật khẩu chính — an toàn hơn.

Gửi email văn bản

import smtplib
from email.mime.text import MIMEText

msg = MIMEText("Nội dung email của bạn")
msg["Subject"] = "Tiêu đề"
msg["From"] = "[email protected]"
msg["To"] = "[email protected]"

with smtplib.SMTP("smtp.example.com", 587) as server:
    server.starttls()               # mã hóa kết nối
    server.login("[email protected]", "MAT_KHAU_UNG_DUNG")
    server.send_message(msg)

Gửi cho nhiều người

nguoi_nhan = ["[email protected]", "[email protected]"]
msg["To"] = ", ".join(nguoi_nhan)
server.send_message(msg)

Email HTML

from email.mime.text import MIMEText
html = "

Xin chào

Đây là email HTML

" msg = MIMEText(html, "html")

Lưu ý bảo mật

  • Không viết mật khẩu trực tiếp trong code — dùng biến môi trường.
  • Dùng app password, không dùng mật khẩu chính.
  • Luôn dùng starttls() để mã hóa.

Kết hợp gửi email với module schedule, bạn có thể tạo hệ thống báo cáo tự động chạy đúng giờ mỗi ngày.

Lên đầu trang