基本的なPythonスクリプトを使用して、私のコンピュータで非常に基本的なSMTP転送を正常に実行しました。
.... things ...
try:
smtpObj = smtplib.SMTP('localhost')
smtpObj.sendmail(sender, recievers, message.format(now, now))
print "Successfully sent email"
except SMTPException:
print "Error: unable to send email"
私のコンピュータとVirtual BoxのUbuntuサーバーの両方でうまく動作します。今、別のサーバーをホストとして使用して、あるサーバーから電子メールを送信したいと思います。
仮想ホストで変更してみました。
smtpObj = smtplib.SMTP('localhost')
そして
smtpObj = smtplib.SMTP('IP of my PC') #IP get from "ifconfig -a"
しかし、うまくいきません。
私は何を逃したことがありませんか?
答え1
私のコンピュータとVirtual BoxのUbuntuサーバーの両方でうまく動作します。今、別のサーバーをホストとして使用して、あるサーバーから電子メールを送信したいと思います。
前述のように両方のシステムで動作し、メールサーバーはlocalhostでのみ実行できるlocalhost
ため、IP address of host
Postfixメールサーバーをインターフェイスの完全なまたは特定のIPアドレスにバインドする必要があります。
Postfix IPアドレスバインディングの設定:
/etc/postfix/main.cf
ファイルを開く
localhost(127.0.0.1)にのみバインドするには、次の行を追加/変更します。
inet_interfaces = NEW_IP_ADDRESS,127.0.0.1
ファイルを保存して閉じます。このパラメータが変更された場合は、Postfixを停止して起動する必要があります。したがって、Postfixを再起動するには、次のコマンドを入力します。
/etc/init.d/postfix restart
sendmailを使用する場合:
開いている/etc/mail/sendmail.cf
DaemonPortOptionsで始まる行を見つけて、次のようAddr=127.0.0.1
に置き換えます。Addr=0.0.0.0
注:0.0.0.0はすべてのアクティブインターフェイスを表します。
その後、sendmailを再起動し、すべてが正常であることを確認します。
netstat -tulpn | grep 25
tail -f /var/log/maillog