私はanacrontabを実行できる共有ホスティングを所有しています。私はそのサーバーで電子メールを受け取ったときにpythonスクリプトを実行したいと思います。 anacrontabは十分ですか? Gmailなどのクライアントを使用する方がよいでしょうか?電子メールの受信時にPythonスクリプトを実行
答えて
import imapclient, pyzmail, html2text
def latestMail():
imapObj = imapclient.IMAPClient('imap.yourServer.com', ssl=False)
imapObj.login('imapUser', 'imapPass')
imapObj.select_folder('Inbox', readonly=False)
UIDs = imapObj.search(criteria='ALL', charset=None)
rawMessages = imapObj.fetch(UIDs[0], ['BODY[]', 'FLAGS'])
message = pyzmail.PyzMessage.factory(rawMessages[UIDs[0]]['BODY[]'])
return message
def parser(message):
if message.text_part is not None and message.html_part is not None:
multipart = True
else:
multipart = False
if message.text_part is not None:
try:
body = message.text_part.get_payload().decode(message.text_part.charset)
except TypeError:
body = message.text_part.get_payload()
if message.html_part is not None and multipart is False:
try:
body = html2text.html2text(message.html_part.get_payload().decode(message.html_part.charset))
except Exception:
raise Systemexit
return body
try:
message = latestMail()
clean = parser(message)
print clean
except IndexError:
print "No messages left"
raise os._exit(0)
except Exception as e:
print e
クローンタブの設定:
HOME=/var/www/html/whatever
* * * * * root /var/www/html/whatever/myMailChecker.py
結論:
これは毎分あなたのIMAPサーバの受信トレイに電話をかけて、自分のメールを谷とそれはコンテンツだパースパース、あなたが後にやりたいことができますメールコンテンツなどでmysqlテーブルに新しいエントリを作成するか、またはクリーンな場合は別のスクリプトを実行するis not None
など
ありがとう!私は私のサーバ上にCrontabを持っていません、anacrontabだけなので、これが私のためにはうまくいかないのでしょうか。 –
問題はありませんが、コードの10〜15行目に独自のCronバージョンを書くことで、完璧にCronをスキップできます –
ああ、ありがとう!あなたは私が情報を見つけることができる場所を知っていますか/これについてもっと知るために何をすべきですか? –
- 1. スクリプト終了時に電子メール通知を受信
- 2. Pythonで電子メールを受信
- 3. Debian - 電子メールの受信時にeximから外部スクリプトを呼び出す
- 4. 電子メールからの電子メールの送信は、Googleスクリプト
- 5. スクリプトを電子メールに送信
- 6. Google電子メール抽出スクリプト - 実行時間超過
- 7. SendGrid経由で電子メールを受信
- 8. GITプッシュで電子メールを受信
- 9. Herokuで電子メールを受信
- 10. 電子メール/ SMSの受信通知
- 11. Outlook VSTO +受信メールの受信者の電子メールアドレスを取得
- 12. Python SMTP電子メールが受信者に届かない
- 13. WooCommerce電子メール/ WP電子メール、Linuxメール(ssh)を受信できません
- 14. 電子メールの自動化シェルスクリプト:スクリプトの実行時に入力を追加
- 15. Python smtpdモジュールで電子メールを送受信する
- 16. Python SMTPサーバーが電子メールを受信しない
- 17. pythonスクリプトからsへの電子メールの送信
- 18. Outlookでの新しいメールの受信時にスクリプトを実行する
- 19. 複数の受信者に電子メールをPython smtplibで.txtファイルから送信
- 20. Pythonで電子メールを送信する簡単なスクリプト
- 21. pythonスクリプトで電子メールを送信する
- 22. VB.NETで複数の受信者に電子メールを送信
- 23. 複数の受信者に電子メールを送信する
- 24. 電子メールが受信トレイに入った後にOutlookスクリプトをトリガーする
- 25. 電子メール送信時のメテオエラー
- 26. ドメインの電子メールをAppEngineの電子メール受信サービスに送信しますか?
- 27. Python SMTP電子メールを送信して返信を受け取ります
- 28. 電子メールの受信時に自動的にスクリプトを呼び出す方法は?
- 29. Ruby電子メール未公開の受信者を送信する
- 30. 受注電子メールを受信していません
ユーザーとして、procmailを使用してmいくつかの状態をパイプコマンドにアーチします。メールサーバーを管理する場合は、複数のアカウントの場合はmilter(メールフィルタ)を作成することができます。 – patthoyts
ありがとう!このタスクにprocmailを使用する方法を知るためのソースの提案はありますか? –
"filter mail with procmail"を検索すると、http://www.linux-mag.com/id/826/が有力候補になります。いくつかのスクリプトにパイプを使用するルールが必要です。 – patthoyts