Twisted
を使用してPython SMTPサーバーとクライアントを実装しました。両方をローカルでテストすると、つまりlocalhostを使用するとすべてが完璧に動作します。しかし、私はそれを分散環境でチェックしたい。 StdoutSMTPFactory
は私のSMTPサーバを構築する工場の私の実装ですpython&twistedを使用してEC2インスタンスに電子メールを送信する方法
factory = StdoutSMTPFactory("./tmp/mail")
tcp_server = internet.TCPServer(2500, factory)
application = service.Application("SMTPServer")
tcp_server.setServiceParent(application)
下に示したようしたがって、私は、私がアプリケーションとして私のSMTPサーバを開始されたEC2アマゾンのインスタンスを実行します。 私のSMTPクライアントは、以下のようになります。ec2-X-X-X-X.eu-west-1.compute.amazonaws.com
は、当然のことながら、私のEC2インスタンスの有効なホスト名は、ちょうどポストのために隠されている
import sys
from email.mime.text import MIMEText
from twisted.internet import reactor
from twisted.mail.smtp import sendmail
from twisted.python import log
log.startLogging(sys.stdout)
host = "ec2-X-X-X-X.eu-west-1.compute.amazonaws.com"
sender = "[email protected]"
recipients = ["[email protected]"]
msg = MIMEText("""Test message
from SenderX
""")
msg["Subject"] = "Title"
msg["From"] = '"Secret Sender" <%s>' % (sender,)
msg["To"] = ", ".join(recipients)
deferred = sendmail(host, sender, recipients, msg.as_string(), port=2500)
deferred.addBoth(lambda result: reactor.stop())
reactor.run()
。 私は私のインスタンスに電子メールを送信しようとすると、私は、次を得る:
[-] Log opened.
[-] Starting factory <twisted.mail.smtp.ESMTPSenderFactory instance at 0x10815d638>
[Uninitialized] SMTP Client retrying server. Retry: 5
[Uninitialized] SMTP Client retrying server. Retry: 4
[Uninitialized] SMTP Client retrying server. Retry: 3
[Uninitialized] SMTP Client retrying server. Retry: 2
[Uninitialized] SMTP Client retrying server. Retry: 1
[-] Stopping factory <twisted.mail.smtp.ESMTPSenderFactory instance at 0x10815d638>
[-] Main loop terminated.
エラーがない、どちらのサーバーまたはクライアント側で。ちょうどそれはクライアントがサーバーに接続できないようです。誰かが私が間違っていることを提案することはできますか?あなたはあなたのコードを持っている