着信メールを受信して​​スクリプトに渡す超軽量スクリプト

着信メールを受信して​​スクリプトに渡す超軽量スクリプト

特定のドメイン名で送信されたすべての電子メールを受け取り、スクリプトに渡す非常に簡単なデーモンスクリプトが必要です。私はこれを行うことができるexim、qmail、または他のソフトウェアがあることを知っていますが、ホストのパフォーマンスに影響を与える大きなものをインストールしたくありません。

ホストを指すドメインのMXレコードがあります。これで、ポート25でリッスンし、メール標準トラフィック(HELOなど)に正しく応答し、メールをスクリプトに渡すためのデーモンが必要です。

どうすればいいですか?


編集する:domain.comが直接配信されます。 POP アカウントを持っている場合やメールを送信するためのドメインは必要ありません。ドメインは送信した電子メールのみを受信し*@domain.com、すべての電子メールをスクリプトにリダイレクトしたいと思います。

可能であれば、CやPerlを使いたいです。

ベストアンサー1

Python標準ライブラリには、smtpdsmtpサーバープロトコルを実装するモジュールが含まれています。数行のPythonであなたが望むことができるはずです。

以下はいくつかのサンプルコードです。

import smtpd
import asyncore

class CustomSMTPServer(smtpd.SMTPServer):

    def process_message(self, peer, mailfrom, rcpttos, data):
        print 'Receiving message from:', peer
        print 'Message addressed from:', mailfrom
        print 'Message addressed to  :', rcpttos
        print 'Message length        :', len(data)
        return

server = CustomSMTPServer(('127.0.0.1', 25), None)

asyncore.loop()

おすすめ記事