2

私がやろうとしていることに混乱があったので、もう一度やり直しています。メール本文に送信者アドレス、件名、および URL を提供する受信トレイに対して実行するスクリプトを作成しようとしています。私が抱えている問題は、スクリプトの URL 解析が、本文からの URL だけでなく、電子メールからすべての URL を取得していることです。ここに例があります

宛先: Tom@mail.com

差出人: Joe@test.com

件名: テストの点数を確認してください

テストのスコアを確認するには、次の URL にアクセスしてください。WWW.test.com/confirmation ご意見ありがとうございます。

署名済み

Joe (Joe の署名の一部に画像があります) 画像の URL は http://www.test.com/wp-content/uploads/_client_image/66-dcfc0fc8.pngです。

出力を

差出人: Joe@test.com

件名: テストの点数を確認する

URL: WWW.test.com/confirmation

代わりにこれを取得します

差出人: Joe@test.com

件名: テストの点数を確認する

URL : WWW.test.com/confirmation、http://www.test.com/wp-content/uploads/_client_image/66-dcfc0fc8.png

そして、ここに私のスクリプトがあります

import re
import mailbox
import urlparse

mbx=mailbox.mbox("Mail Box Path")

url_pattern = re.compile('''["']http://[^+]*?['"]''')

for k, m in mbx.iteritems():
    print "From %s\n" % m['from']
    print "Subject %s\n" % m['subject']
    print "URL %s\n" % url_pattern.findall(m.as_string())
4

1 に答える 1

0

署名は電子メールの本文としてカウントされるため、署名を分離することはできません。

電子メールに関心のあるリンクが 1 つしかないことが確かな場合は、最初に一致した URL だけを確認することもできますが、やり取りしているだけであることを確認する (信頼できる) 方法はありません。署名ではなく、電子メールの本文。

誰かがこれについて論文を書いています- 特に、扱っている電子メールのフォーマットを制御できない場合は、非常に困難です。

于 2012-08-14T21:02:28.530 に答える