仮想マシンでEメールを送信する

仮想マシンでEメールを送信する

基本的な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 hostPostfixメールサーバーをインターフェイスの完全なまたは特定の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

関連情報