Thư viện tiêu chuẩn của Python có mô-đun 'smtplib' xác định một đối tượng phiên ứng dụng khách SMTP có thể được sử dụng để gửi thư qua chương trình Python.
Máy chủ thư là một ứng dụng xử lý và gửi e-mail qua internet. Máy chủ thư đi triển khai SMTP hoặc Giao thức truyền thư đơn giản, các máy chủ là tiêu chuẩn Internet để truyền email.
Máy chủ thư đến có hai loại chính. POP3, hoặc giao thức Bưu điện và IMAP, hoặc Giao thức truy cập tin nhắn Internet.
Hàmsmptlib.SMTP ()
Hàm này trả về một đối tượng của lớp SMTP. Nó đóng gói và quản lý kết nối đến máy chủ SMTP hoặc ESMTP. Các đối số sau được định nghĩa trong chữ ký của hàm này -
máy chủ | Chuỗi là tên của máy chủ từ xa cần kết nối. |
cổng | Một số chỉ định cổng sẽ kết nối. Theo mặc định, smtplib.SMTP_PORT được sử dụng. |
local_hostname | được sử dụng làm FQDN của máy chủ cục bộ trong lệnh HELO / EHLO. |
source_address | đối tượng 2 tuple (máy chủ, cổng) mà socket sẽ liên kết |
Nó có các phương thức sau hỗ trợ hoạt động SMTP -
connect () -
Phương thức này thiết lập kết nối với máy chủ lưu trữ trên một cổng nhất định.
đăng nhập () -
Hàm này nhận đối số tên người dùng và mật khẩu để đăng nhập vào máy chủ SMTP.
thoát () -
Hàm này kết thúc phiên SMTP.
dữ liệu () -
Đối số 'thông báo' cho hàm này được gửi đến máy chủ.
docmd () -
Hàm này gửi một lệnh và trả về mã phản hồi của nó
ehlo () -
Chức năng này xác định máy chủ.
starttls () -
Chức năng này khởi động chế độ TLS.
getreply () -
Chức năng này nhận phản hồi từ máy chủ dưới dạng mã phản hồi.
putcmd () -
Hàm này sẽ gửi một lệnh đến máy chủ.
send_message () -
Hàm này chuyển đổi thư thành một chuỗi byte và chuyển nó để gửi thư.
sendmail () -
Lệnh này thực hiện toàn bộ giao dịch thư.
Các đối số là -
from_addr | Địa chỉ gửi thư này. |
to_addrs | Danh sách các địa chỉ để gửi thư này đến. |
tin nhắn | Tin nhắn cần gửi. |
Đoạn mã dưới đây sử dụng máy chủ smtp của gmail để gửi email. Đối tượng SMTP sử dụng máy chủ smtp của gmail tại cổng 527. Lệnh ehlo () xác định máy chủ. Chúng tôi cũng kích hoạt Bảo mật tầng truyền tải cho thư gửi đi.
Tiếp theo, lệnh login () được gọi bằng cách chuyển thông tin đăng nhập làm đối số cho nó. Cuối cùng, thư được tập hợp bằng cách đính kèm tiêu đề theo định dạng quy định và nó được gửi bằng phương thức sendmail (). Đối tượng SMTP được đóng sau đó.
import smtplib content="HelloWorld" mail=smtplib.SMTP('smtp.gmail.com',587) mail.ehlo() mail.starttls() sender='[email protected]' recipient='[email protected]' mail.login('[email protected]','m15v5l61') header='To:'+receipient+'\n'+'From:'\ +sender+'\n'+'subject:testmail\n' content=header+content mail.sendmail(sender,recipient, content) mail.close()
Trước khi chạy tập lệnh trên, hãy đảm bảo rằng tài khoản gmail của người gửi được cung cấp quyền truy cập vào 'các ứng dụng kém an toàn hơn'.
https://myaccount.google.com/lesssecureapps
Đặt nút bật tắt được hiển thị thành BẬT.
Thực thi tập lệnh trên sau khi thực hiện cài đặt trên. Tin nhắn phải được chuyển đến hộp thư đến của người nhận.