Linuxで、smtpd.SMTPServerを使用して電子メールを受信する小さなアプリケーションがあります。小さなテストコードは次のとおりです。
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(('0.0.0.0', 25), None)
asyncore.loop()
次の問題があります。(1)このコードを使用すると、電子メールを送信するコンピューターに次のメッセージが表示されます。502エラー:コマンド「EHLO」が実装されていないため、サーバーが正しく応答してさらにデータを受信したり、電子メールと通信したりできません。 -送信コンピュータ(私はクライアントだと思います)。
そもそもEHLOのような基本的なものをUbuntuのインストールに実装すべきではないでしょうか?なぜ実装されないのですか?
(2)UbuntuにpostfixをインストールすることでEHLOをインストールできると思いました。私はそれを行い、同じテスト呼び出しが続行されましたが、後で別のエラーで停止しました:
Client: RCPT TO: XXX@YYY.com
Server: 554 5.7.1 <XXX@YYY>: Relay access denied
(3)後で、他のいくつかのテストを行った後、テストコード自体からエラーが発生しました。
error: [Errno 98] Address already in use
で見られるように、使用されたIPアドレスはすでに使用されていたことがわかります
netstat -lnpt
そのうちのケースは実行中の接尾辞でした。postfixサービスを停止した後、アドレスは使用されなくなりましたが、もちろん問題#1に戻りました。
502 Error: command "EHLO" not implemented
SMTPServerを使用して電子メールメッセージを受信できるようにしたいと思います1.postfixをインストールする必要なしに2.非同期を使用して
Pythonライブラリを使用してこれを簡単かつ簡単な方法で可能にする方法についてのアイデアがあれば、それは素晴らしいことです!
乾杯アレックス