
特定のドメイン名で送信されたすべての電子メールを受け取り、スクリプトに渡す非常に簡単なデーモンスクリプトが必要です。私はこれを行うことができるexim、qmail、または他のソフトウェアがあることを知っていますが、ホストのパフォーマンスに影響を与える大きなものをインストールしたくありません。
ホストを指すドメインのMXレコードがあります。これで、ポート25でリッスンし、メール標準トラフィック(HELOなど)に正しく応答し、メールをスクリプトに渡すためのデーモンが必要です。
どうすればいいですか?
編集する:domain.comが直接配信されます。 POP アカウントを持っている場合やメールを送信するためのドメインは必要ありません。ドメインは送信した電子メールのみを受信し*@domain.com
、すべての電子メールをスクリプトにリダイレクトしたいと思います。
可能であれば、CやPerlを使いたいです。
答え1
Python標準ライブラリには、smtpd
smtpサーバープロトコルを実装するモジュールが含まれています。数行の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()