Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Gửi mail từ tài khoản Gmail bằng Python

Trong bài viết này, chúng ta sẽ xem cách gửi email với tệp đính kèm sử dụng Python. Để gửi mail, chúng ta không cần thư viện bên ngoài. Có một module gọi là SMTPlib, đi kèm với Python. Nó sử dụng SMTP (Simple Mail Transfer Protocol) để gửi thư. Nó tạo đối tượng phiên SMTP client cho việc gửi thư.

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

Trước tiên chúng ta cần nhập module để gửi mail.

import smtplib

Ở đây chúng ta cũng sử dụng module MIME (Multipurpose Internet Mail Extension) để làm cho nó linh hoạt hơn. Sử dụng header MIME, chúng ta có thể lưu trữ thông tin người gửi và người nhận và một số chi tiết khác.

Chúng ta đang sử dụng dịch vụ Gmail của Google để gửi mail. Vì vậy chúng ta cần một số cài đặt (nếu cần) cho mục đích bảo mật của Google. Nếu các 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ợ truy cập từ ứng dụng bên thứ ba.

Để cho phép truy cập, chúng ta cần thiết lập cài đặt 'Less Secure App Access' trong tài khoản Google. Nếu xác thực hai bước đang bật, chúng ta không thể sử dụng less secure access.

Để hoàn tất thiết lập này, vào Google Admin Console, và tìm kiếm thiết lập Less Secure App.

Gửi mail từ tài khoản Gmail bằng Python

Các bước gửi mail với tệp đính kèm sử dụ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 đề mail vào MIME
  • Đính kèm nội dung vào MIME
  • Bắt đầu phiên SMTP với số cổng hợp lệ với tính năng bảo mật phù hợp.
  • Đăng nhập vào hệ thống.
  • Gửi mail và thoát

Mã ví dụ

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'''

# Địa chỉ mail và mật khẩu
sender_address = 'sender123@gmail.com'
sender_pass = 'xxxxxxxx'
receiver_address = 'receiver567@gmail.com'

# Thiết lập MIME
message = MIMEMultipart()
message['From'] = sender_address
message['To'] = receiver_address
message['Subject'] = 'A test mail sent by Python. It has an attachment.'  # Dòng chủ đề

# Nội dung và tệp đính kèm cho mail
message.attach(MIMEText(mail_content, 'plain'))

# Tạo phiên SMTP để gửi mail
session = smtplib.SMTP('smtp.gmail.com', 587)  # dùng gmail với cổng
session.starttls()  # bật bảo mật
session.login(sender_address, sender_pass)  # đăng nhập với mail_id và mật khẩu
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 mail từ tài khoản Gmail bằng Python