検索
ホームページバックエンド開発Python チュートリアルimaplib モジュールを使用して Python 3.x で電子メールを受信する方法

imaplib モジュールを使用して Python 3 で電子メールを受信する方法.x

はじめに:
現代社会では、電子メールは人々の仕事や生活に欠かせない一部となっています。開発者として、受信メールを受信して​​処理するプログラムを作成する必要がある場合があります。 Python はこの機能を実装するためのライブラリを豊富に提供していますが、その中でも imaplib モジュールは非常に便利なツールです。この記事では、Python 3.x の imaplib モジュールを使用してメールを受信する方法を紹介します。

ステップ 1: imaplib モジュールをインストールする
始める前に、imaplib モジュールが Python 環境にインストールされていることを確認してください。インストールされていない場合は、次のコマンドを実行してインストールできます:

pip install imaplib

ステップ 2: 必要なライブラリをインポートする
プログラムを作成する前に、まず imaplib モジュールとその他の関連ライブラリをインポートする必要があります。 。

import imaplib
import email
from email.header import decode_header

ステップ 3: メール サーバーに接続する
メールを受信するには、メール サーバーに接続する必要があります。暗号化された IMAP 接続は、imaplib モジュールの IMAP4_SSL 関数を使用して確立できます。

# 设置IMAP服务器地址和端口
imap_server = "imap.example.com"
imap_port = 993

# 建立与IMAP服务器的连接
imap_connection = imaplib.IMAP4_SSL(imap_server, imap_port)

ステップ 4: メールボックスにログインします
IMAP サーバーに正常に接続したら、メールボックスにログインする必要があります。これを実現するには、IMAP オブジェクトの login() メソッドを使用します。

# 输入邮箱账户和密码
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)  # 退出程序

ステップ 5: 処理する電子メール アドレスを選択します
ログインに成功した後、電子メールを受信する電子メール アドレスを選択する必要があります。 IMAP オブジェクトの select() メソッドを使用して、メールボックスを選択できます。

# 选择收件箱
mailbox = "INBOX"
try:
    imap_connection.select(mailbox)
except Exception as e:
    print("选择邮箱失败:", str(e))
    exit(1)  # 退出程序

ステップ 6: メールの検索
メールボックスを選択したら、search() メソッドを使用してメールを検索できます。検索条件を指定して、必要なメールをフィルタリングできます。

# 搜索条件
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()

ステップ 7: メールをスキャンして処理する
メールを検索した後、メールをスキャンして各メールを処理できます。

# 遍历邮件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)

ステップ 8: 添付ファイルを保存する (オプション)
電子メールに添付ファイルがある場合は、次のコードを使用して添付ファイルを保存できます。

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)

ステップ 9: IMAP サーバーへの接続を閉じる
メールの処理が終了したら、IMAP サーバーへの接続を閉じる必要があります。

# 关闭与IMAP服务器的连接
try:
    imap_connection.logout()
except Exception as e:
    print("退出登录失败:", str(e))
    exit(1)  # 退出程序

概要:
この記事では、Python 3.x の imaplib モジュールを使用して電子メールを受信する方法を紹介します。 IMAP サーバーに接続し、メールボックスにログインし、メールボックスを選択し、メールを検索し、メールを走査し、メールを処理することでタスクを完了します。 imaplib モジュールは、電子メール受信のさまざまなニーズを満たす豊富な機能とメソッドを提供します。この知識を習得することで、強力で効率的なメール処理プログラムを作成できます。

以上がimaplib モジュールを使用して Python 3.x で電子メールを受信する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Pythonと時間:勉強時間を最大限に活用するPythonと時間:勉強時間を最大限に活用するApr 14, 2025 am 12:02 AM

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Python:ゲーム、GUIなどPython:ゲーム、GUIなどApr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Python vs. C:比較されたアプリケーションとユースケースPython vs. C:比較されたアプリケーションとユースケースApr 12, 2025 am 12:01 AM

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間のPython計画:現実的なアプローチ2時間のPython計画:現実的なアプローチApr 11, 2025 am 12:04 AM

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Python:主要なアプリケーションの調査Python:主要なアプリケーションの調査Apr 10, 2025 am 09:41 AM

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間でどのくらいのPythonを学ぶことができますか?2時間でどのくらいのPythonを学ぶことができますか?Apr 09, 2025 pm 04:33 PM

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか?中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか?Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません