[Python cơ bản thường dùng trong công việc] Phần 14 : Gửi email với SMTP

832

SMTP là giao thức gởi mail thông dụng hiện nay. Python hỗ trợ mặc định thư viện smtplib dùng để kết nối đến một SMTP Server và gởi email. Tuy nhiên, việc sử dụng thư viện này sẽ gây khó khăn cho việc định dạng và sử dụng nên chúng ta sẽ sử dụng thư viện sender , là một thư viện giúp định dạng và gởi email đơn giản hơn.

14.1. Cài đặt sender

Cài đặt từ pip như sau:

$ sudo pip install sender

Tuyển dụng lập trình python

14.2. Gởi email đơn giản

Để gởi 1 email với sender , bạn cần có tài khoản và một số thông tin của SMTP Server trước khi gởi. Ví dụ đoạn code để gởi 1 email từ SMTP Server của Amazon.

from sender import Mail, Message

mail = Mail(
     "smtp.gmail.com",
      port = 465,
      username = "example@gmail.com", 
      password = "yourpassword", 
      use_tls = False, 
      use_ssl = True,
      debug_level = False
)

msg = Message("msg subject")
msg.fromaddr = ("Vo Duy Tuan", "example@gmail.com") 
msg.to = "destuser@gmail.com"
msg.body = "this is a msg plain text body"
msg.html = "<b>this is a msg text body</b>"
msg.reply_to = "example@gmail.com"
msg.charset = "utf-8"
msg.extra_headers = {}
msg.mail_options = []
msg.rcpt_options = []

# Send message
mail.send(msg)

14.3. Gởi email có đính kèm file

Bạn cần sử dụng thêm class Attachment để tạo attachment.

from sender import Mail, Message, Attachment
mail = Main(...)
msg = Message(..)
...
# Open attached file and create Attachment object 
with open("photo01.jpg") as f:
       file01 = Attachment("photo01.jpg", "image/jpeg", f.read())

msg.attach(file01)

# Send message

mail.send(msg)

14.4. Tìm hiểu thêm

Bạn có thể tìm hiểu thêm về thư viện sender tại website chính thức tại địa chỉ http://sender.readthedocs.org/