Check email với Python (phần 2)

Gửi các emails với Python

Sau đây là một code mẫu để gửi các emails sử dụng Python và thư viện

smtplib

python
import smtplib

smtp_server = ‘smtp.gmail.com’ # Set the SMTP server for your email provider
port = 587 # Set the port for SMTP

sender_email = ‘youremail@gmail.com’ # Replace with your email address
receiver_email = ‘receiveremail@gmail.com’ # Replace with receiver email address
password = ‘yourpassword’ # Replace with your email password
message = “””\
Subject: Hi there!

This is a test email.”””

# Create a secure SSL context
context = ssl.create_default_context()

# Try to log in to server and send email
try:
server = smtplib.SMTP(smtp_server, port)
server.starttls(context=context) # Secure the connection
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
print(‘Email sent!’)
except Exception as e:
print(f’Error sending email: {e}’)
finally:
server.quit()

Trong code ở trên, chúng ta trước tiên thiết lập máy chủ SMTP, cổng, email sender, receiver, mật khẩu và message.
Sau đó chúng ta tạo một bối cảnh secure SSL sử dụng module

ssl

Sau đó chúng ta sử dụng

smtplib.SMTP()

để kết nối tới SMTP server và bắt đầu một kết nối TLS sử dụng

server.starttls()

, cái là cần thiết để thiết lập một kênh trao đổi thông tin an toàn.
Tiếp theo, chúng ta log vào server sử dụng

server.login()

, truyền trong sender email và mật khẩu. Chúng ta sau đó sử dụng

server.sendmail()

để gửi email, cái lấy sender email, receiver email, và message như các đối số.
Cuối cùng, chúng ta đóng kết nối tới máy chủ sử dụng

server.quit()

Nếu có một lỗi, chúng ta sẽ bắt nó và in ra một thông điệp hữu dụng.

Đọc các emails với Python:

Để đọc các emails với Python, chúng ta có thể sử dụng module tích hợp:

imaplib

Sau đây là một ví dụ về làm cách nào kết nối tới một tài khoản email và đọc hộp thư:

import imaplib
import email

mail = imaplib.IMAP4_SSL(‘imap.gmail.com’)
mail.login(‘youremail@gmail.com’, ‘yourpassword’)
mail.select(‘inbox’)

type, data = mail.search(None, ‘ALL’)
mail_ids = data[0]

id_list = mail_ids.split()
latest_email_id = int(id_list[-1])

for num in range(latest_email_id, latest_email_id-10, -1):
typ, data = mail.fetch(str(num), ‘(RFC822)’)
raw_email = data[0][1]
email_message = email.message_from_string(raw_email)

print(‘From:’, email_message[‘From’])
print(‘Subject:’, email_message[‘Subject’])
print(‘Body:’, email_message.get_payload())

Code này trước tiên kết nối một tài khoản Gmail sử dụng xác thực SSL, lựa chọn inbox, và tìm kiếm tất cả các emails (tham
số)

‘ALL’

Nó sau đó lặp qua 10 emails gần nhất, lấy dữ liệu email thô và chuyển nó thành một object.

email.message.Message

Code sau đó in ra sender, subject và body của mỗi email.
Chú ý rằng bạn sẽ cần kích hoạt các ứng dụng kém an toàn hơn trong cài đặt tài khoản Google của bạn để cho phép script
này truy cập gmail inbox.

Chia sẻ