1

電子メールパーサーを作成する方法をハッシュ化しようとしています。技術的には理解していますが、実装の詳細がわかりません。

したがって、ユーザーがアドレスに電子メールを送信し、メールサーバーが受信し、アプリが件名、コンテンツに基づいてそれを解析し、バケット (電子メールアカウントまたはデータベース) にドロップすると、それに基づいて行動できます。

では、既存のメール サーバー ソフトウェア (既に実行している Zimbra など) を使用するか、それともポート 25 でリッスンし、必要なことを具体的に実行するアプリを作成するか? (このボックスで実行されているメールサーバーソフトウェアがないことなどを意味します)

ここでの私の目標は、私が自分自身に電子メールを送った内容に基づいて、自動化された個人用の一連の組織化ツールを作成することです。

4

2 に答える 2

1

ポート 25 でリッスンし、SMTP サーバーとして機能するように何かを記述することは、関与し、おそらくやり過ぎです。

主な選択肢は2つあると思います。1 つ目は、既存のメール サーバーをそのままにして、そのメール サーバーのアカウントを IMAP (または POP3) 経由でポーリングしてメールを取得し、スクリプトを使用して処理する方法です。IMAP 接続を処理し、ほとんどの言語で電子メールを解析するためのライブラリがあるため、どの言語に慣れているかは問題ではありません。

または、これを行うhttp://CloudMailin.comのようなサービスを調べることもできます。電子メールを受信し、JSON 形式などの http 投稿を介して作成できる Web アプリに送信します。

于 2012-05-01T08:40:00.903 に答える
0

メールボックスをポーリングする python スクリプトを使用します (cron ジョブに基づく)。Python では、IMAP に非常に簡単にアクセスでき、電子メールの内容を解析するための強力な正規表現関数を備えています。

次のようなものを試してください:

import imaplib, email
import re

M= imaplib.IMAP4_SSL('imap.gmail.com')
M.login('user', 'pass')

M.select('Imap_folder')

typ, data = M.search(None, 'FROM', '"*"')

for num in data[0].split():
   typ, data = M.fetch(num, '(RFC822)')
   email_body = data[0][1] # getting the mail content
   mail = email.message_from_string(email_body) # parsing the mail content to get a mail object
   foo = re.compile("your regular expr here", re.MULTILINE)
   res = foo.search(email_body)
于 2012-04-30T15:34:32.120 に答える