Đăng nhập

Bài 32: Gửi email tự động bằng Python

Trong bài học này, bạn sẽ học cách để… Python gửi email thay bạn. Không cần mở Gmail, không cần copy dán – chỉ cần bấm chạy là thư tự bay đi.

Khi bạn muốn “thư từ” được tự động hóa

Bạn có từng:

  • Gửi báo cáo mỗi ngày cho sếp?
  • Muốn chương trình cảnh báo khi có lỗi xảy ra?
  • Muốn tự động gửi thư cảm ơn sau khi khách hàng đăng ký?

Tất cả những điều đó – bạn hoàn toàn có thể tự động hóa bằng Python. Dù là file đính kèm, nội dung HTML, tiêu đề tùy biến, Python lo được hết.


Mục tiêu bài học

  • Gửi email từ Gmail bằng thư viện smtplib
  • Tạo nội dung email bằng email.message
  • Tùy chỉnh tiêu đề, người nhận, nội dung
  • Gửi file đính kèm
  • Ứng dụng vào gửi báo cáo, thông báo, cảnh báo

1. Bật quyền gửi từ Gmail

Gmail mặc định chặn ứng dụng kém an toàn, nên bạn cần:

  1. Truy cập: myaccount.google.com/apppasswords
  2. Tạo mật khẩu ứng dụng (App Password)
  3. Dùng mật khẩu đó thay cho mật khẩu Gmail trong code

Bạn cần bật xác minh 2 bước để tạo được App Password


2. Gửi email đơn giản

import smtplib
from email.message import EmailMessage

email = EmailMessage()
email["From"] = "ban@gmail.com"
email["To"] = "nguoinhan@gmail.com"
email["Subject"] = "Thử gửi email từ Python"
email.set_content("Xin chào! Đây là email gửi tự động từ Python.")

with smtplib.SMTP_SSL("smtp.gmail.com", 465) as smtp:
    smtp.login("ban@gmail.com", "MẬT_KHẨU_ỨNG_DỤNG")
    smtp.send_message(email)

print("✅ Đã gửi email thành công.")

3. Gửi nội dung HTML

email.set_content("Trình duyệt không hỗ trợ HTML", subtype="plain")
email.add_alternative("""
<html>
  <body>
    <h2 style="color:blue;">Chào bạn!</h2>
    <p>Đây là email có <b>HTML</b> từ Python.</p>
  </body>
</html>
""", subtype="html")

4. Gửi kèm file đính kèm

with open("baocao.pdf", "rb") as f:
    file_data = f.read()
    file_name = f.name

email.add_attachment(file_data, maintype="application", subtype="octet-stream", filename=file_name)

5. Gửi cho nhiều người

email["To"] = ", ".join(["a@gmail.com", "b@yahoo.com", "c@outlook.com"])

6. Ứng dụng thực tế

  • Gửi báo cáo Excel mỗi ngày (sau bài vẽ biểu đồ)
  • Gửi thông báo kết quả thi cho học sinh
  • Gửi cảnh báo khi website bị lỗi hoặc đơn hàng mới phát sinh
  • Gửi mail marketing cơ bản đến danh sách từ Excel

7. Bài tập luyện tập

Bài 1: Tạo chương trình hỏi người dùng email → gửi thư cảm ơn tự động
Bài 2: Gửi email đính kèm file report.xlsx (từ bài pandas)
Bài 3: Tạo hệ thống cảnh báo: nếu file log.txt có từ “ERROR” → gửi email cho bạn ngay


Bạn đã học được

  • Gửi email bằng Python cực dễ với smtplib + email.message
  • Tạo nội dung phong phú: text, HTML, đính kèm
  • Tự động hóa hoàn toàn việc báo cáo, thông báo
  • Nền tảng để xây hệ thống: “Python biết báo cáo – biết trò chuyện – biết cảnh báo”

Bài tiếp theo:
👉 Bài 33: Tự động hóa công việc – Dùng Python làm trợ lý cá nhân: mở file, đổi tên, gửi báo cáo, lọc dữ liệu!

Bạn đã thấy Python “hữu dụng như nhân viên văn phòng rồi chứ?” 😄

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.