Pythonを使ってメールの操作がしたかったので、いろいろと調べてみました。
今回は、gmailをpythonから開く方法をまとめていきたいと思います。
他のメールの開き方も調べてみましたが、gmailを操作するということが簡単でした。
gmailにアクセスする
まずはgmailの方を設定する必要があります。
- gmailにログイン
- 右上の歯車のマークをクリック
- 「設定」をクリック
- 上の方にある「メール転送とPOP/IMAP」をクリック
- IMAPアクセス:のIMAPを有効にするをクリック
- 完了
次にpythonからアクセスして閉じるところからやっていきます。
#-*- coding:utf-8 -*-
import imaplib
import email #この二つをimport
mail=imaplib.IMAP4_SSL('imap.gmail.com',993) #SMTPは993,POPは995
mail.login('操作したいメールアドレス','そのメールアドレスのパスワード')
mail.select('inbox') #メールボックスの選択
mail.close()
mail.logout()
説明
mail=imaplib.IMAP4_SSL('imap.gmail.com',993) #SMTPは993,POPは995
これはhostとポート番号の登録を行います。
gmailの場合はhostは’imap.gmail.com’となりポート番号は’993’か’995’となります。
mail.login('操作したいメールアドレス','そのメールアドレスのパスワード')
メールアドレスとパスワードを入力してログインします。
最初にメールアドレスを、次にパスワードをいれます。
例)mail.login(‘○○××@gmail.com’,’konnitiha’)
mail.select('inbox') #メールボックスの選択
メールボックスを選択します。
自分で新しいメールボックスを作成していない限りは、’inbox’で取得することができます。
mail.close()
mail.logout()
終了しログアウトします。
これで基本的なオープン、クローズ方法は完了です。
メールの内容を操作するための準備
メールの内容の変更などを行う準備をします。
具体的な「本文」「差出人」の取得は別の記事で紹介します。
#-*- coding:utf-8 -*-
import imaplib
import email #この二つをimport
mail=imaplib.IMAP4_SSL('imap.gmail.com',993) #SMTPは993,POPは995
mail.login('操作したいメールアドレス','そのメールアドレスのパスワード')
mail.select('inbox') #メールボックスの選択
type,data=mail.search(None,'ALL') #メールボックス内にあるすべてのデータを取得
for i in data[0].split(): #data分繰り返す
ok,x=mail.fetch(i,'RFC822') #メールの情報を取得
ms=email.message_from_string(x[0][1].decode('iso-2022-jp')) #パースして取得
mail.close()
mail.logout()
説明
type,data=mail.search(None,'ALL') #メールボックス内にあるすべてのデータを取得
これでメールボックスのデータを取得できます。
typeはそのメールがあると「OK」を返します。
for i in type:
print(i)
で確認してみてください。
dataはそのメールのidが取得されます。
このdataのままでは処理ができません。
for i in data[0].split(): #data分繰り返す
data[0]だと一つの要素になってしまうので、.split()を使って要素ごとに分けていきます。
例)print(data[0])
だと「b’1 2’」などと出力
for i in data[0].split():
print(i)
だと「b’1’」「b’2’」と出力
ok,x=mail.fetch(i,'RFC822')
okにはメールが存在する場合には「’OK’」が入ります。
xにはメールの情報が入ります。しかし、printで表示してもらうとわかりますが、人が読める文字列ではありません。
ms=email.message_from_string(x[0][1].decode('iso-2022-jp')) #パースして取得
文字列から構造をかえします。
これをすることによってmsにはメールの文字列(人には読めない)と構成のデータが入ります。
準備完了
これで準備は完了しました。
次の記事で具体的な内容の取得を紹介します。
次の記事↓