Làm cách nào để đọc email bằng IMAP trong Python?
Show
email_user = input('Email: ') 0 là một gói sử dụng mà chúng tôi có thể thao tác các thư mục tệp có trên máy tính để bàn cục bộ của chúng tôiemail_user = input('Email: ') 1 là gói dùng để đọc, viết và gửi email từ tập lệnh python của bạnTrước tiên, chúng tôi cần email_id và mật khẩu để truy cập email email_user = input('Email: ') Bạn, nhập email và mật khẩu để truy cập email mail = imaplib.IMAP4_SSL(“host”,port) Bây giờ, chúng tôi đã tạo kết nối với máy chủ qua ổ cắm được mã hóa SSL. Cổng tiêu chuẩn cho IMAP4_SSL là 993. Nếu tài khoản của bạn là Gmail thì địa chỉ máy chủ là “imap. gmail. com” mail.login(email_user, email_pass) Bây giờ, chúng tôi đã đăng nhập vào thư của bạn và chúng tôi có toàn quyền truy cập vào tất cả các email mail.select() Điều này chọn thư mục hoặc nhãn bạn muốn đọc thư từ. Nếu bạn viết email_user = input('Email: ') 2 thì chúng tôi đã chọn thư mục hộp thư đếntype, data = mail.search(None, 'ALL') email_user = input('Email: ') 3 tìm kiếm từ thư ở đây bạn có thể cung cấp các bộ lọc như từ, đến hoặc chủ đề của thư được tìm thấy. email_user = input('Email: ') 4 là bộ ký tự và email_user = input('Email: ') 5 trả về tất cả thư mà không cần bất kỳ bộ lọc nào. Hàm này trả về 2 giá trị một là email_user = input('Email: ') 6 đó là liệu yêu cầu có phải là email_user = input('Email: ') 7 hay không. Nếu email_user = input('Email: ') 7 điều đó có nghĩa là yêu cầu đã thành công. Trong khi email_user = input('Email: ') 9 là id của tất cả các emailfor num in data[0].split(): Bây giờ, chúng tôi đang lặp lại từ tất cả các id và sẽ in từ chủ đề, nội dung thư mail = imaplib.IMAP4_SSL(“host”,port) 0 tìm nạp thư cho id đã cho trong đó mail = imaplib.IMAP4_SSL(“host”,port) 1 là Giao thức truy cập thư trên Internet. Bây giờ, bạn có thể sử dụng mail = imaplib.IMAP4_SSL(“host”,port) 2 để lấy tiêu đề thư. email_user = input('Email: ') 9 từ tìm nạp được mã hóa nhị phân nên chúng tôi cần giải mã theo bộ ký tự UTF-8. Bây giờ, hãy chuyển chuỗi đã giải mã đó tới mail = imaplib.IMAP4_SSL(“host”,port) 4 để chấp nhận một chuỗi và chuyển đổi nó thành định dạng từ điển với các trường bắt buộc. mail = imaplib.IMAP4_SSL(“host”,port) 5 được sử dụng để lặp qua cây thư. mail = imaplib.IMAP4_SSL(“host”,port) 6 là nhiều phần nếu email chứa tệp đính kèm hoặc nếu không thì đó là văn bản/đơn giảnPython 3 có các thư viện tích hợp cho IMAP, POP3 và SMTP. Chúng ta sẽ tập trung tìm hiểu cách gửi thư bằng SMTP và đọc/quản lý email bằng IMAP. Chúng tôi cũng sẽ xem xét cách gửi tin nhắn văn bản SMS bằng email Nếu bạn cần dịch vụ lưu trữ email của riêng mình, hãy xem Interserver. lưu trữ mạng nơi bạn có thể lưu trữ email không giới hạn cho các miền không giới hạn với giá rẻ chỉ $4/tháng. Bạn cũng có thể thiết lập máy chủ SMTP của riêng mình trên VPS, nhưng điều đó thật rắc rối Một lưu ý về GmailGmail sẽ không cho phép bạn sử dụng IMAP hoặc POP theo mặc định và bạn phải bật tính năng này Để thực hiện việc này, hãy đi tới cài đặt Gmail của bạn và chọn "Bật IMAP" trong tab "Chuyển tiếp và POP/IMAP". Nhìn thấy. Kiểm tra Gmail thông qua các nền tảng email khác để biết thêm thông tin Tên người dùng của bạn là địa chỉ email đầy đủ tại Gmail. Cả IMAP và SMTP đều yêu cầu xác thực. Tên máy chủ và cổng là
Đọc email với IMAPĐể tìm nạp email, bạn có thể sử dụng poplib cho POP3 hoặc imaplib cho IMAP4. Chúng tôi sẽ chỉ tập trung vào IMAP cung cấp cho bạn nhiều tùy chọn hơn Sử dụng hoặc phân loại tùy thuộc vào việc bạn có đang sử dụng SSL hay không. Ví dụ này sẽ sử dụng 1
Để giữ cho ví dụ đầu tiên đơn giản, đây là một ví dụ đơn giản tối thiểu về việc kiểm tra hộp thư đến
Ví dụ tiếp theo này sẽ chỉ ra cách thực hiện các thao tác phổ biến hơn như
Phân tích nội dung emailTrong ví dụ trước, chúng tôi đã chỉ ra cách tìm nạp dữ liệu email thô, nhưng nó bao gồm các tiêu đề, nội dung và mọi thứ trong một đốm màu duy nhất. Nội dung thô đó tương đương với một thông điệp 2. Python có gói 3 sẽ phân tích cú pháp dữ liệu thô này và cung cấp cho chúng ta một đối tượng hữu íchBạn có thể phân tích cú pháp email bằng email. trình phân tích cú pháp. Ngoài ra còn có một hàm có tên mà bạn có thể sử dụng để phân tích cú pháp trực tiếp từ các byte thô như chúng ta sẽ có. Sau khi có, bạn có thể kiểm tra các khía cạnh khác nhau như xem nó có nhiều phần không, loại nội dung và tải trọng Ví dụ này sẽ xây dựng dựa trên ví dụ kiểm tra hộp thư đến đơn giản ở trên và trình bày cách
Lưu ý rằng nếu bạn có một email trên đĩa và bạn muốn phân tích cú pháp trực tiếp từ một tệp, bạn có thể sử dụng 4 như thế này
Nếu bạn chỉ muốn lấy tệp đính kèm từ một email bỏ qua phần thân, bạn có thể sử dụng Gửi email bằng SMTPHãy xem cách gửi email bằng Python. Trước tiên, chúng ta sẽ xem xét việc gửi một email văn bản gốc rất cơ bản bằng cách sử dụng smtplib. Sau đó, chúng tôi sẽ tạo một thông báo email nhiều phần bằng cách sử dụng email. tin nhắn có văn bản, HTML và tệp đính kèm Những ví dụ này sẽ sử dụng máy chủ SSL SMTP được mã hóa. Cổng mặc định cho SMTP với SSL là 587
Lưu ý rằng địa chỉ gửi của bạn có thể rất quan trọng. Một số tường lửa và máy chủ email sẽ ngăn không cho email của bạn đi qua nếu bạn sử dụng tên miền không khớp với máy chủ gửi, vì vậy bạn không thể giả vờ là 5Gửi email văn bản thuần túyVí dụ đầu tiên này sẽ hiển thị ví dụ đơn giản nhất về gửi thư bằng SMTP. Email sẽ được tạo thủ công, với các tiêu đề đầu tiên, tiếp theo là một dòng trống, tiếp theo là nội dung văn bản thuần túy
Thay vì tạo email dưới dạng chuỗi thô lớn, bạn có thể sử dụng class để quản lý email dễ dàng hơn. Ví dụ này sẽ chỉ ra cách
Gửi email HTML nhiều phần có tệp đính kèmĐể tạo một email nhiều phần có chứa các phiên bản văn bản và HTML cùng với tệp đính kèm, bạn có thể sử dụng lớp
Để sử dụng 6, trước tiên hãy tạo đối tượng giống như một 7 bình thường. Tuy nhiên, thay vì thiết lập nội dung, chúng tôi sẽ 8 tất cả các phần, bao gồm phiên bản văn bản, phiên bản html và bất kỳ tệp đính kèm nàoVí dụ này sẽ chỉ ra cách tạo một email MIME nhiều phần có
Mẫu email với Jinja2Nếu bạn muốn tạo một mẫu văn bản hoặc HTML để sử dụng lại, tôi khuyên dùng các mẫu Jinja2 Đây là một ví dụ rất cơ bản về cách sử dụng mẫu Jinja2. Tham khảo tài liệu Jinja2 để biết thêm chi tiết
Gửi tin nhắn văn bản (SMS/MMS) qua emailHầu hết các nhà cung cấp dịch vụ điện thoại di động cũng cung cấp một cổng email cho phép bạn gửi địa chỉ email và nó sẽ gửi SMS/MMS đến điện thoại di động Để biết danh sách chi tiết các cổng email SMS được liệt kê bởi nhà cung cấp, hãy xem cổng SMS trên Wikipedia Ví dụ: để nhắn tin cho số 888-123-4567 trên AT&T, tôi có thể gửi email đến 0Phần kết luậnSau khi đọc hướng dẫn này, bạn sẽ hiểu cách sử dụng Python để đọc thư bằng IMAP và cách gửi thư bằng SMTP với email văn bản thuần hoặc HTML cùng với tệp đính kèm Làm cách nào để đọc email bằng IMAP Python?Trong ví dụ bên dưới, chúng tôi đăng nhập vào máy chủ gmail bằng thông tin đăng nhập của người dùng. Sau đó chúng ta chọn hiển thị các tin nhắn trong hộp thư đến. Một vòng lặp for được sử dụng để hiển thị từng thông báo đã tìm nạp và cuối cùng kết nối bị đóng . Tùy thuộc vào cấu hình hộp thư, thư được hiển thị.
Làm cách nào để đọc dữ liệu từ email bằng Python?Hãy bắt đầu bằng cách viết một số mã. . ORG_EMAIL = "@gmail. com" FROM_EMAIL = "Địa chỉ Email của bạn" + ORG_EMAIL FROM_PWD = "Mật khẩu của bạn" SMTP_SERVER = "imap. gmail. com" SMTP_PORT = 993 def read_email_from_gmail(). # logic đọc thư sẽ đến đây thư = imaplib. . dữ liệu = thư Làm cách nào để đọc thư Outlook bằng Python?Đọc Thư Email Outlook bằng Python
. Tải tệp email bằng MailMessage. phương thức tải (tên tệp). Đọc dữ liệu bằng các thuộc tính như chủ đề, nội dung, html_body, v.v.
Sự khác biệt giữa Smtplib và Imaplib là gì?SMTP VS IMAP
. IMAP hoạt động giữa máy chủ và máy khách để liên lạc và SMTP hoạt động giữa các máy chủ để truyền thông tin. IMAP cho phép người dùng sắp xếp email trên máy chủ, trong khi SMTP cho phép sắp xếp email trên bộ nhớ máy khách. IMAP is used to retrieve messages, and SMTP is for sending data. IMAP works between the server and client for communication, and SMTP works between servers to transfer information. IMAP allows users to organize emails onto the server, while SMTP allows organizing emails on client storage. |