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 smtplibsmtp_server = ‘smtp.gmail.com’ # Set the SMTP server for your email provider
port = 587 # Set the port for SMTPsender_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 emailmail = 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.