私は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. 電子メールに電子メール通知スクリプト
- 8. GITプッシュで電子メールを受信
- 9. Herokuで電子メールを受信
- 10. SendGrid経由で電子メールを受信
- 11. 電子メール/ SMSの受信通知
- 12. Outlook VSTO +受信メールの受信者の電子メールアドレスを取得
- 13. Codeigniter - 電子メールを受信しましたが、電子メールで送信したメッセージを受信しません。
- 14. Python SMTP電子メールが受信者に届かない
- 15. WooCommerce電子メール/ WP電子メール、Linuxメール(ssh)を受信できません
- 16. キュー電子メール受信者の電子メールアドレスの問題laravel 4.2
- 17. 電子メールの自動化シェルスクリプト:スクリプトの実行時に入力を追加
- 18. Python smtpdモジュールで電子メールを送受信する
- 19. Python SMTPサーバーが電子メールを受信しない
- 20. Outlookでの新しいメールの受信時にスクリプトを実行する
- 21. pythonスクリプトからsへの電子メールの送信
- 22. 複数の受信者に電子メールをPython smtplibで.txtファイルから送信
- 23. S3(SES電子メール受信)の電子メールからBCC受信者を取得する方法
- 24. pythonスクリプトで電子メールを送信する
- 25. Pythonで電子メールを送信する簡単なスクリプト
- 26. 任意の受信者に電子メールを送信django
- 27. 複数の受信者に電子メールを送信する
- 28. VB.NETで複数の受信者に電子メールを送信
- 29. 電子メールが受信トレイに入った後にOutlookスクリプトをトリガーする
- 30. 電子メール送信時のメテオエラー
ユーザーとして、procmailを使用してmいくつかの状態をパイプコマンドにアーチします。メールサーバーを管理する場合は、複数のアカウントの場合はmilter(メールフィルタ)を作成することができます。 – patthoyts
ありがとう!このタスクにprocmailを使用する方法を知るためのソースの提案はありますか? –
"filter mail with procmail"を検索すると、http://www.linux-mag.com/id/826/が有力候補になります。いくつかのスクリプトにパイプを使用するルールが必要です。 – patthoyts