私は働いているアプリケーションで私の電子メールを取得したいと思います。私のGmailアカウントから言いましょう。そこで、電子メールのアドレス、ポート、サーバー、およびパスワードを格納するクラスを設定しました。Djangoは電子メールとその添付ファイルを受信します
Gmailアカウントの電子メールからSubject、Body、およびFromセクションを取得し、 ".eml"という拡張子を持つバックアップフォルダにメールをバックアップする機能を作成しました。また、私は上記のヘッダーと内容でリストが表示されている "mail-list.html"テンプレートを持っています。ここまで良い。
メッセージがある場合、アタッチメントを取得するにはどうすればいいですか?「mail-list.html」テンプレートがあれば表示できます。 電子メールのこの記事は私には全く新しいものなので、コード例や指向さえあればすばらしいでしょう!
私はdjangoメールボックスなどのいくつかのplugginsをチェックアウトしましたが、私はそれを私の最後の手段にしたいと思います。
私が働いているアプリでは、私の電子メールを取得したい、私のGmailアカウントから言いましょう。そこで、電子メールのアドレス、ポート、サーバー、およびパスワードを格納するクラスを設定しました。
Gmailアカウントの電子メールからSubject、Body、およびFromセクションを取得し、 ".eml"という拡張子を持つバックアップフォルダにメールをバックアップする機能を作成しました。また、私は上記のヘッダーと内容でリストが表示されている "mail-list.html"テンプレートを持っています。ここまで良い。
メッセージがある場合、アタッチメントを取得するにはどうすればいいですか?「mail-list.html」テンプレートがあれば表示できます。 電子メールのこの記事は私には全く新しいものなので、コード例や指向さえあればすばらしいでしょう!
私はdjangoメールボックスなどのいくつかのplugginsをチェックアウトしましたが、私はそれを私の最後の手段にしたいと思います。
UPDATE:
私はこのような添付ファイルを取得するために管理しています...
#previous code here to get subject,body etc in my function
if message.get_content_maintype() == 'multipart':
filenames_list = []
for part in message.walk():
print("part.get_content_maintype ",part.get_content_maintype())
#find the attachment part - so skip all the other parts
if part.get_content_maintype() == 'multipart': continue
if part.get_content_maintype() == 'text': continue
if part.get('Content-Disposition') == 'inline': continue
if part.get('Content-Disposition') is None: continue
#put attachments in list
filenames_list.append(filename)
print ("filenames_list",filenames_list)
#create context for template
mail_list['attachment'] = filenames_list
はだから今、私はリストに私のファイル名を入れて、私のテンプレートで私をそれらを使用しますそれらをmail_list ['attachment']コンテキストに入れてください。
ファイル名が英語で表示されたとき、私はこの取得:私が手 (例えば、ギリシャ語用)[「myessay.pdf」、「test.odt」]
しかし、添付ファイルが異なる言語である:をUTF-8?B?zrXOs86zz4HOsc + Gzr8xLmRvYw == UTF-8?B zrXOs86zz4HOsc + Gzr8yLmRvYw == UTF-8?B zrXOs86zz4HOsc + Gzr8xMi5kb2M = ?= ']
上記のように、リストには「、」で区切られた3つの添付ファイルがあります。
デコードまたはエンコードする方法は?私はここで何が適切か分からない。
あなたがメールサービスを使用していますか? –
私はブラウザからGmailを使用しています。それはどんなサービスでもスウィーリングしています。私はオフィスでもやってみました365。 –