가상 머신을 통해 이메일 보내기

가상 머신을 통해 이메일 보내기

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

관련 정보