


Cara menggunakan modul imaplib untuk menerima e-mel dalam Python 3.x
Cara menggunakan modul imaplib untuk menerima e-mel dalam Python 3.x
Pengenalan:
Dalam masyarakat moden, e-mel telah menjadi bahagian penting dalam kerja dan kehidupan orang ramai. Sebagai pembangun, kadangkala kami perlu menulis program untuk menerima dan memproses e-mel masuk. Python menyediakan banyak perpustakaan untuk melaksanakan fungsi ini, antaranya modul imaplib ialah alat yang sangat berguna. Dalam artikel ini, kami akan memperkenalkan cara menggunakan modul imaplib dalam Python 3.x untuk menerima e-mel.
Langkah 1: Pasang modul imaplib
Sebelum bermula, pastikan modul imaplib dipasang dalam persekitaran Python anda. Jika ia tidak dipasang, anda boleh memasangnya dengan menjalankan arahan berikut:
pip install imaplib
Langkah 2: Import perpustakaan yang diperlukan
Sebelum menulis atur cara, kita perlu mengimport modul imaplib dan perpustakaan lain yang berkaitan terlebih dahulu.
import imaplib import email from email.header import decode_header
Langkah 3: Sambung ke pelayan mel
Untuk menerima mel, kita perlu menyambung ke pelayan mel. Sambungan IMAP yang disulitkan boleh diwujudkan menggunakan fungsi IMAP4_SSL modul imaplib.
# 设置IMAP服务器地址和端口 imap_server = "imap.example.com" imap_port = 993 # 建立与IMAP服务器的连接 imap_connection = imaplib.IMAP4_SSL(imap_server, imap_port)
Langkah 4: Log masuk ke peti mel anda
Selepas berjaya menyambung ke pelayan IMAP, kami perlu log masuk ke peti mel kami. Gunakan kaedah log masuk() objek IMAP untuk mencapai ini.
# 输入邮箱账户和密码 email_address = "your_email@example.com" password = "your_password" # 登录到邮箱 try: imap_connection.login(email_address, password) except Exception as e: print("登录失败:", str(e)) exit(1) # 退出程序
Langkah 5: Pilih alamat e-mel untuk diproses
Selepas log masuk berjaya, kita perlu memilih alamat e-mel untuk menerima e-mel. Kaedah select() bagi objek IMAP boleh digunakan untuk memilih peti mel.
# 选择收件箱 mailbox = "INBOX" try: imap_connection.select(mailbox) except Exception as e: print("选择邮箱失败:", str(e)) exit(1) # 退出程序
Langkah 6: Cari Mel
Setelah peti mel dipilih, kita boleh menggunakan kaedah carian() untuk mencari mel. Anda boleh menapis e-mel yang diperlukan dengan menentukan kriteria carian.
# 搜索条件 search_criteria = 'ALL' # 搜索邮件 try: status, message_ids = imap_connection.search(None, search_criteria) except Exception as e: print("搜索邮件失败:", str(e)) exit(1) # 退出程序 # 将邮件ID列表拆分为单独的邮件ID message_id_list = message_ids[0].split()
Langkah 7: Gelung melalui e-mel dan proses
Selepas mencari e-mel, kami boleh mengulangi e-mel dan memproses setiap e-mel.
# 遍历邮件ID列表并处理每封邮件 for message_id in message_id_list: try: status, message_data = imap_connection.fetch(message_id, "(RFC822)") except Exception as e: print("获取邮件失败:", str(e)) continue # 邮件内容 raw_email = message_data[0][1] email_message = email.message_from_bytes(raw_email) # 解析邮件头部 subject = decode_header(email_message["Subject"])[0][0] sender = decode_header(email_message["From"])[0][0] recipient = decode_header(email_message["To"])[0][0] # 打印邮件信息 print("邮件主题:", subject) print("发件人:", sender) print("收件人:", recipient) # 如果邮件有附件 if email_message.get_content_maintype() == "multipart": for part in email_message.walk(): content_type = part.get_content_type() if "application" in content_type: save_attachment(part)
Langkah 8: Simpan lampiran (pilihan)
Jika e-mel mempunyai lampiran, kita boleh menggunakan kod berikut untuk menyimpan lampiran.
def save_attachment(part): filename = part.get_filename() if filename: with open(filename, "wb") as f: f.write(part.get_payload(decode=True)) print("保存附件:", filename)
Langkah 9: Tutup sambungan ke pelayan IMAP
Apabila kami selesai memproses mel, kami harus menutup sambungan ke pelayan IMAP.
# 关闭与IMAP服务器的连接 try: imap_connection.logout() except Exception as e: print("退出登录失败:", str(e)) exit(1) # 退出程序
Ringkasan:
Artikel ini memperkenalkan cara menggunakan modul imaplib dalam Python 3.x untuk menerima e-mel. Kami menyelesaikan tugas dengan menyambung ke pelayan IMAP, log masuk ke peti mel, memilih peti mel, mencari mel, melintasi mel dan memproses mel. Modul imaplib menyediakan pelbagai fungsi dan kaedah untuk memenuhi pelbagai keperluan untuk menerima e-mel. Dengan menguasai pengetahuan ini, kita boleh menulis program pemprosesan mel yang berkuasa dan cekap.
Atas ialah kandungan terperinci Cara menggunakan modul imaplib untuk menerima e-mel dalam Python 3.x. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Adakah ikon mel Outlook tiada daripada Panel Kawalan Windows 11? Keadaan yang tidak dijangka ini telah menyebabkan kekeliruan dan kebimbangan di kalangan sesetengah individu yang bergantung pada OutlookMail untuk keperluan komunikasi mereka. Mengapa e-mel Outlook saya tidak dipaparkan dalam Panel Kawalan? Mungkin terdapat beberapa sebab yang mungkin mengapa tiada ikon mel Outlook dalam Panel Kawalan: Outlook tidak dipasang dengan betul. Memasang aplikasi Office daripada Microsoft Store tidak menambah applet Mel pada Panel Kawalan. Lokasi fail mlcfg32.cpl dalam Panel Kawalan tiada. Laluan ke fail mlcfg32.cpl dalam pendaftaran adalah salah. Sistem pengendalian tidak dikonfigurasikan pada masa ini untuk menjalankan aplikasi ini

PHP menghantar e-mel secara tidak segerak: elakkan menunggu lama untuk e-mel dihantar. Pengenalan: Dalam pembangunan web, menghantar e-mel adalah salah satu fungsi biasa. Namun, memandangkan penghantaran e-mel memerlukan komunikasi dengan pelayan, ia sering menyebabkan pengguna menunggu lama sementara menunggu e-mel dihantar. Untuk menyelesaikan masalah ini, kami boleh menggunakan PHP untuk menghantar e-mel secara tidak segerak untuk mengoptimumkan pengalaman pengguna. Artikel ini akan memperkenalkan cara melaksanakan PHP untuk menghantar e-mel secara tidak segerak melalui contoh kod tertentu dan mengelakkan menunggu lama. 1. Memahami menghantar e-mel secara tidak segerak

Jika anda mendapati halaman kosong muncul apabila anda mencetak dokumen gabungan mel menggunakan Word, artikel ini akan membantu anda. Cantuman mel ialah ciri mudah yang membolehkan anda membuat dokumen diperibadikan dengan mudah dan menghantarnya kepada berbilang penerima. Dalam Microsoft Word, ciri gabungan mel dipandang tinggi kerana ia membantu pengguna menjimatkan masa menyalin kandungan yang sama secara manual untuk setiap penerima. Untuk mencetak dokumen gabungan mel, anda boleh pergi ke tab Mel. Tetapi sesetengah pengguna Word telah melaporkan bahawa apabila cuba mencetak dokumen gabungan mel, pencetak mencetak halaman kosong atau tidak mencetak langsung. Ini mungkin disebabkan oleh pemformatan atau tetapan pencetak yang salah. Cuba semak tetapan dokumen dan pencetak dan pastikan anda pratonton dokumen sebelum mencetak untuk memastikan kandungannya betul. jika

Fungsi penjejakan e-mel PHP: memahami tingkah laku pengguna dan maklum balas mengenai e-mel Dalam masyarakat moden, e-mel telah menjadi bahagian yang amat diperlukan dalam kehidupan dan pekerjaan harian orang ramai. Untuk perniagaan, menghantar e-mel adalah salah satu cara penting untuk berkomunikasi dengan pelanggan dan mempromosikan produk atau perkhidmatan. Walau bagaimanapun, selepas e-mel dihantar, bagaimana kita tahu sama ada ia diterima, dibaca atau bagaimana pengguna bertindak balas terhadap kandungan e-mel tersebut? Pada masa ini, fungsi penjejakan e-mel menjadi sangat penting. Fungsi penjejakan e-mel boleh membantu kami memahami tingkah laku pengguna dan maklum balas mengenai e-mel

Apakah transkripsi mel suara masa nyata? Transkripsi Mel Suara Langsung ialah ciri inovatif yang diperkenalkan dalam iOS 16 yang membolehkan pengguna iPhone melihat transkripsi langsung mel suara mereka semasa meninggalkannya. Ciri ini menggunakan teknologi pengecaman pertuturan lanjutan untuk menukar perkataan yang dituturkan kepada teks, menyediakan cara yang mudah dan boleh diakses untuk mengikuti perkembangan berita terkini tanpa perlu mendengarnya sepenuhnya. Faedah Menggunakan Transkripsi Mel Suara Langsung Transkripsi Mel Suara Langsung menawarkan beberapa kelebihan kepada pengguna iPhone: Peningkatan Produktiviti: Dengan menyediakan transkripsi masa nyata, Transkripsi Mel Suara Langsung menjimatkan masa dan usaha pengguna dengan menghapuskan keperluan untuk mendengar keseluruhan mel suara. Ini membolehkan pengguna mengimbas kandungan mel suara dengan cepat dan mengutamakan respons mereka. Kebolehcapaian untuk pengguna bermasalah pendengaran

Peti mel Win10 wujud dalam sistem yang disertakan dengan Win10 Banyak kali tetapan lalai akan menyebabkan banyak masalah kepada pengguna Sebagai contoh, apabila menggunakannya, anda mendapati bahawa anda tidak boleh mengakses akaun ini. Mari lihat di bawah. Apa yang perlu dilakukan jika Win10 Mail tidak dapat mengakses akaun ini: 1. Tekan "Win+I" untuk membuka "Tetapan Windows" 2. Klik "Privasi" 3. Cari "E-mel" pada bar tugas kiri 4. Hidupkan pilihan dalam gambar itu

Cara menggunakan PatternMatching untuk padanan corak jenis dalam Java14 Pengenalan: Java14 memperkenalkan ciri baharu, PatternMatching, yang merupakan alat berkuasa yang boleh digunakan untuk padanan corak jenis pada masa penyusunan. Artikel ini akan memperkenalkan cara menggunakan PatternMatching untuk jenis padanan corak dalam Java14 dan memberikan contoh kod. Fahami konsep PatternMatchingPattern

Cara menggunakan fungsi urllib.parse.unquote() untuk menyahkod URL dalam Python 3.x Dalam perpustakaan urllib Python, modul urllib.parse menyediakan satu siri fungsi alat untuk pengekodan dan penyahkodan URL, antaranya urllib.parse.unquote. () Fungsi boleh digunakan untuk menyahkod URL. Artikel ini akan memperkenalkan cara menggunakan urllib.parse.un
