複数メールを自動処理したいとことはありませんか?
例えばWEBフォームからの申し込みがあるとき、申込一覧を作成したいときなどですメールが数件なら、目で見ながらEXCELに転記すればいいですが、数が多くなると大変です。通常は、google form,microsoft formsなどを使って申し込みフォームを作成すれば、結果はスプレッドシートやexcelに自動で取り込めます。しかし、無料のホームページなどで申し込みを作ると、申し込みは指定されたメールアドレスに送られます。自動処理はできないですね。さあ、ちょっとしたプログラミングや工夫で解決できますpythonでプログラミングをしてみます。windowsではストアからpythonをダウンロードできます■ステップ1 ホームページjimdoでホームページを作り、申込フォームを作成しますメールアドレスはgmailとします申し込みはgmailに送られます■ステップ2 GMAILをダウンロードgmailを開いて、該当のメールをすべて選択します新規メールを作成、あて先は自分選択したメールを本文にドロップ表題を設定して送信受信したメールを開いて、右クリックメッセージをダウンロード、名前はtest.emlにします■ステップ3 pythonプログラム作成ひな形のプログラムで、抽出する項目を設定します項目は「項目名:情報」の形式で保存されているとしますここで項目は「お名前name、電話tel、住所address、email」とします適時黒字部分を修正してください#----------------------------------------- if (u"お名前name" in str(line)): name=check(u"お名前name",line) print(name) n=n+1 if (u"電話tel" in str(line)): tel=check(u"電話tel",line) n=n+1 if (u"住所address" in str(line)): address=check(u"住所address",line) n=n+1 if (u"email" in str(line)): email=check(u"email",line) n=n+1 if n==4: output(f"{name},{email},{address},{tel}\n") n=0 name="" email="" address="" tel=""#-----------------------------------------■ステップ4 実行フォルダーを作り、test.emlとpythonプログラムを入れます。アドレス欄に「cmd」と入力して、コマンドプロンプトを開きますコマンドプロンプト画面に「python Getdatafromemail.py」と入力してpythonプログラムを実行しますoutput.csv に抽出された情報が出力されますクリックするとexcelが開きますちょっとしたプログラミングができると、便利なことが増えます# coding: utf-8import imaplibimport emailimport base64import quopriimport globdef output(w): f = open("output.csv","a") f.writelines(w) f.close()def check(s,d): if s in d: w=d.split(":") return w[1] return ""filelist=glob.glob("test.eml")for t in filelist: w="" flg=False name="" email="" address="" tel="" f = open(t, 'r',encoding='iso2022_jp') n=0 for l in f: line=l.rstrip('\n')#----------------------------------------- if (u"お名前name" in str(line)): name=check(u"お名前name",line) print(name) n=n+1 if (u"電話tel" in str(line)): tel=check(u"電話tel",line) n=n+1 if (u"住所address" in str(line)): address=check(u"住所address",line) n=n+1 if (u"email" in str(line)): email=check(u"email",line) n=n+1 if n==4: output(f"{name},{email},{address},{tel}\n") n=0 name="" email="" address="" tel=""#----------------------------------------- f.close()