기본 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