(+84) 236.3827111 ex. 402

Gửi Email sử dụng SMTP


SMTP (là viết tắt của Simple Mail Transfer Protocol) là một giao thức để xử lý trình gửi và định tuyến email giữa các Mail Server. Python cung cấp smtplib Module, mà định nghĩa một đối tượng SMTP Client Session có thể được sử dụng để gửi email tới bất kỳ thiết bị internet nào với một SMTP hoặc ESMTP Listener.

Dưới đây là cú pháp cơ bản để tạo một đối tượng SMTP:

import smtplib

smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )

Chi tiết về tham số:

  • host: Đây là host đang chạy SMTP Server của bạn. Bạn có thể xác định địa chỉ IP của host hoặc một tên miền như vietjack.com. Đây là tham số tùy ý.

  • port: Nếu bạn cung cấp tham số host, thì bạn cần xác định một port, đây là nơi SMTP Server nghe yêu cầu. Thường thì port này sẽ là 25.

  • ten_localhost: Nếu SMTP Server của bạn đang chạy trên thiết bị local, thì bạn có thể xác định là localhost cho tùy chọn này.

  • Đối tượng SMTP có một phương thức instance là sendmail, được sử dụng để gửi một thông điệp. Nó nhận ba tham số:

    • sender - Là một chuỗi chỉ địa chỉ của người gửi.

    • receivers - Một danh sách các chuỗi, mỗi chuỗi là địa chỉ của người nhận.

    • message - Là một thông điệp dưới định dạng chuỗi.

    Ví dụ

    Dưới đây là cách đơn giản để gửi một email bởi sử dụng Python.

     
    
    import smtplib
    
    sender = 'from@fromdomain.com'
    receivers = ['to@todomain.com']
    
    message = """From: Tu 
    To: Toi 
    Subject: SMTP e-mail test
    
    Day la vi du ve gui email.
    """
    
    try:
       smtpObj = smtplib.SMTP('localhost')
       smtpObj.sendmail(sender, receivers, message)         
       print "Gui email thanh cong"
    except SMTPException:
       print "Error: khong the gui email"

    Trong ví dụ trên, chúng ta đã đặt một email cơ bản trong message, bởi sử dụng trích dẫn tam. Bạn cần định dạng các trường header một cách chính xác. Một email cần một From, To, và Subject header, được phân biệt với phần thân email bởi một dòng trắng.

    Để gửi một email, bạn sử dụng smtpObj để kết nối tới SMTP Server trên thiết bị local và sau đó sử dụng phương thức sendmail cùng với thông điệp message, địa chỉ người gửi, địa chỉ người nhận là các tham số.

    Nếu bạn không chạy SMTP Server trên thiết bị local, bạn có thể sử dụng smtplib Client để giao tiếp với một SMTP Server từ xa. Ví dụ:

    smtplib.SMTP('mail.your-domain.com', 25)