Thư viện email Python

Giao thức truyền thư đơn giản [SMTP] là một giao thức xử lý việc gửi e-mail và định tuyến e-mail giữa các máy chủ thư

Python cung cấp mô-đun smtplib, mô-đun này xác định đối tượng phiên máy khách SMTP có thể được sử dụng để gửi thư đến bất kỳ máy Internet nào có trình nền trình nghe SMTP hoặc ESMTP

Đây là một cú pháp đơn giản để tạo một đối tượng SMTP, đối tượng này sau này có thể được sử dụng để gửi e-mail -

import smtplib

smtpObj = smtplib.SMTP[ [host [, port [, local_hostname]]] ]

Đây là chi tiết của các tham số -

  • máy chủ - Đây là máy chủ chạy máy chủ SMTP của bạn. Bạn có thể chỉ định địa chỉ IP của máy chủ hoặc tên miền như hướng dẫn. com. Đây là đối số tùy chọn

  • cổng - Nếu bạn đang cung cấp đối số máy chủ, thì bạn cần chỉ định một cổng, nơi máy chủ SMTP đang lắng nghe. Thông thường cổng này sẽ là 25

  • local_hostname − Nếu máy chủ SMTP của bạn đang chạy trên máy cục bộ, thì bạn chỉ có thể chỉ định localhost cho tùy chọn này

Một đối tượng SMTP có một phương thức thể hiện được gọi là sendmail, phương thức này thường được sử dụng để thực hiện công việc gửi thư. Phải mất ba tham số -

  • Người gửi - Một chuỗi có địa chỉ của người gửi

  • Người nhận - Một danh sách các chuỗi, một chuỗi cho mỗi người nhận

  • Thông báo - Một thông báo dưới dạng chuỗi được định dạng như được chỉ định trong các RFC khác nhau

Ví dụ

Đây là một cách đơn giản để gửi một email bằng tập lệnh Python. Try it once −

#!/usr/bin/python

import smtplib

sender = 'from@fromdomain.com'
receivers = ['to@todomain.com']

message = """From: From Person 
To: To Person 
Subject: SMTP e-mail test

This is a test e-mail message.
"""

try:
   smtpObj = smtplib.SMTP['localhost']
   smtpObj.sendmail[sender, receivers, message]         
   print "Successfully sent email"
except SMTPException:
   print "Error: unable to send email"

Tại đây, bạn đã đặt một e-mail cơ bản trong thư, sử dụng ba trích dẫn, chú ý định dạng tiêu đề chính xác. Một e-mail yêu cầu tiêu đề Từ, Đến và Chủ đề, được phân tách khỏi phần thân của e-mail bằng một dòng trống

Để gửi thư, bạn sử dụng smtpObj để kết nối với máy chủ SMTP trên máy cục bộ, sau đó sử dụng phương thức sendmail cùng với thư, địa chỉ gửi và địa chỉ đích làm tham số [mặc dù địa chỉ gửi và đến nằm trong thư điện tử].

Nếu bạn không chạy máy chủ SMTP trên máy cục bộ của mình, bạn có thể sử dụng ứng dụng khách smtplib để giao tiếp với máy chủ SMTP từ xa. Trừ khi bạn đang sử dụng dịch vụ webmail [chẳng hạn như Hotmail hoặc Yahoo. Mail], nhà cung cấp dịch vụ e-mail của bạn phải cung cấp cho bạn thông tin chi tiết về máy chủ thư gửi đi mà bạn có thể cung cấp chúng, như sau –

smtplib.SMTP['mail.your-domain.com', 25]

Gửi email HTML bằng Python

Khi bạn gửi tin nhắn văn bản bằng Python, thì tất cả nội dung được coi là văn bản đơn giản. Ngay cả khi bạn bao gồm các thẻ HTML trong một tin nhắn văn bản, nó sẽ được hiển thị dưới dạng văn bản đơn giản và các thẻ HTML sẽ không được định dạng theo cú pháp HTML. Nhưng Python cung cấp tùy chọn để gửi tin nhắn HTML dưới dạng tin nhắn HTML thực tế

Trong khi gửi e-mail, bạn có thể chỉ định phiên bản Mime, loại nội dung và bộ ký tự để gửi e-mail HTML

Ví dụ

Sau đây là ví dụ để gửi nội dung HTML dưới dạng e-mail. Hãy thử một lần -

#!/usr/bin/python

import smtplib

message = """From: From Person 
To: To Person 
MIME-Version: 1.0
Content-type: text/html
Subject: SMTP HTML e-mail test

This is an e-mail message to be sent in HTML format

This is HTML message.
This is headline.
"""

try:
   smtpObj = smtplib.SMTP['localhost']
   smtpObj.sendmail[sender, receivers, message]         
   print "Successfully sent email"
except SMTPException:
   print "Error: unable to send email"

Gửi tệp đính kèm dưới dạng e-mail

Để gửi e-mail có nội dung hỗn hợp, yêu cầu đặt tiêu đề Kiểu nội dung thành nhiều phần/hỗn hợp. Sau đó, các phần văn bản và tệp đính kèm có thể được chỉ định trong các ranh giới

Một ranh giới được bắt đầu bằng hai dấu gạch ngang, theo sau là một số duy nhất, không thể xuất hiện trong phần thông báo của e-mail. Ranh giới cuối cùng biểu thị phần cuối cùng của e-mail cũng phải kết thúc bằng hai dấu gạch nối

Các tệp đính kèm phải được mã hóa bằng hàm pack["m"] để có mã hóa base64 trước khi truyền

python-email

Thư viện python hiện đại cho email

Xây dựng thông điệp

>>> import emails
>>> message = emails.html[html="

Hi!
Here is your receipt...", subject="Your receipt No. 567098123", mail_from=['Some Store', 'store@somestore.com']] >>> message.attach[data=open['bill.pdf', 'rb'], filename='bill.pdf']

gửi tin nhắn và nhận phản hồi từ máy chủ smtp

>>> r = message.send[to='s@lavr.me', smtp={'host': 'aspmx.l.google.com', 'timeout': 5}]
>>> assert r.status_code == 250

và hơn thế nữa

  • chữ ký DKIM
  • Kết xuất nội dung từ mẫu
  • Tiện ích mở rộng Flask và tích hợp Django
  • Các phương thức chuyển đổi nội dung thư
  • Tải tin nhắn từ url hoặc từ tập tin


Tài liệu. python-email. đọcthedocs. tổ chức

mở rộng bình. bình-email



Thư viện email trong Python là gì?

Gói email là thư viện để quản lý thư điện tử . Nó đặc biệt không được thiết kế để thực hiện bất kỳ việc gửi email nào tới SMTP [RFC 2821], NNTP hoặc các máy chủ khác; .

Làm cách nào để cài đặt thư viện email trong Python?

Gửi email kiểm tra bằng Python .
Bước 1. Cài đặt ứng dụng khách smtplib. Ngày nay, thư viện này được mặc định trong hệ điều hành mới nhất như centOS 7. .
Bước 2. Tạo một tệp python thử nghiệm [mail. py]. .
Bước 3. Sẵn sàng để bắn

Bạn có thể gửi email bằng Python không?

Gửi email bằng Python và SMTP . Mô-đun sử dụng giao thức RFC 821 tiêu chuẩn, do đó không cần cài đặt thêm hoặc thủ thuật nào. in its standard library there is a built-in smtplib module that is used for sending emails via SMTP connection. The module uses the standard RFC 821 protocol, so no extra installations or tricks are required.

Làm cách nào để đọc email bằng Python?

tìm nạp[] . Phương thức này có ba đối số. num [số đại diện cho vị trí trong hộp thư chúng tôi muốn bắt đầu tìm nạp email], loại [loại hộp thư chúng tôi muốn truy cập; Mã nhập thư viện imaplib và email. Tiếp theo, người dùng được đặt và mật khẩu cũng được đặt.

Chủ Đề