Computer >> Máy Tính >  >> Lập trình >> Python

Ứng dụng giao thức SMTP bằng Python (smtplib)


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àm

smptlib.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='pythonanytime@gmail.com'
recipient='mlathkar@gmail.com'
mail.login('pythonanytime@gmail.com','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.

Ứng dụng giao thức SMTP bằng Python (smtplib)

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.