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

Gửi thư từ tài khoản Gmail của bạn bằng Python

Trong bài viết này, chúng ta sẽ xem cách chúng ta có thể gửi email có tệp đính kèm bằng Python. Để gửi thư, chúng tôi không cần bất kỳ thư viện bên ngoài nào. Có một mô-đun được gọi là SMTPlib, đi kèm với Python. Nó sử dụng SMTP (Giao thức truyền thư đơn giản) để gửi thư. Nó tạo các đối tượng phiên khách SMTP để gửi thư.

SMTP cần mã nguồn và địa chỉ email đích hợp lệ và số cổng. Số cổng khác nhau đối với các trang web khác nhau. Ví dụ:đối với google, cổng là 587 .

Đầu tiên, chúng tôi cần nhập mô-đun để gửi thư.

import smtplib

Ở đây chúng tôi cũng đang sử dụng mô-đun MIME (Phần mở rộng Thư Internet Đa năng) để làm cho nó linh hoạt hơn. Sử dụng tiêu đề MIME, chúng tôi có thể lưu trữ thông tin người gửi và người nhận cũng như một số chi tiết khác.

Chúng tôi đang sử dụng dịch vụ Gmail của Google để gửi thư. Vì vậy, chúng tôi cần một số cài đặt (nếu được yêu cầu) cho mục đích bảo mật của google. Nếu những cài đặt đó không được thiết lập, thì mã sau có thể không hoạt động, nếu google không hỗ trợ quyền truy cập từ ứng dụng của bên thứ ba.

Để cho phép truy cập, chúng tôi cần đặt cài đặt 'Quyền truy cập ứng dụng kém an toàn hơn' trong tài khoản google. Nếu xác minh hai bước được bật, chúng tôi không thể sử dụng quyền truy cập kém an toàn hơn.

Để hoàn tất thiết lập này, hãy truy cập Bảng điều khiển dành cho quản trị viên của Google và tìm kiếm thiết lập Ứng dụng kém an toàn hơn.

Gửi thư từ tài khoản Gmail của bạn bằng Python

Các bước gửi thư có tệp đính kèm bằng SMTP (smtplib)

  • Tạo MIME
  • Thêm địa chỉ người gửi, người nhận vào MIME
  • Thêm tiêu đề thư vào MIME
  • Gắn phần thân vào MIME
  • Bắt đầu phiên SMTP với số cổng hợp lệ với các tính năng bảo mật thích hợp.
  • Đăng nhập vào hệ thống.
  • Gửi thư và thoát

Mã mẫu

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
mail_content = '''Hello,
This is a simple mail. There is only text, no attachments are there The mail is sent using Python SMTP library.
Thank You
' ' '
#The mail addresses and password
sender_address = '[email protected]'
sender_pass = 'xxxxxxxx'
receiver_address = '[email protected]'
#Setup the MIME
message = MIMEMultipart()
message['From'] = sender_address
message['To'] = receiver_address
message['Subject'] = 'A test mail sent by Python. It has an attachment.'   #The subject line
#The body and the attachments for the mail
message.attach(MIMEText(mail_content, 'plain'))
#Create SMTP session for sending the mail
session = smtplib.SMTP('smtp.gmail.com', 587) #use gmail with port
session.starttls() #enable security
session.login(sender_address, sender_pass) #login with mail_id and password
text = message.as_string()
session.sendmail(sender_address, receiver_address, text)
session.quit()
print('Mail Sent')

Đầu ra

D:\Python TP\Python 450\linux>python 327.Send_Mail.py
Mail Sent

Gửi thư từ tài khoản Gmail của bạn bằng Python