所以我嘗試通過python腳本發送郵件。使用通常的接收者地址格式可以正常工作”user@domain.tld". 當我現在嘗試使用帶有接收者“user@[IP Address]的腳本時,我所有的調試輸出看起來都很好,sendmail方法也可以工作,但是郵件始終沒有收到。我通過dig從我的終端得到IP地址。在
這是我的方法,期望一個接收方作為參數(去掉一些不重要的東西并混淆真實的地址/憑證)def sendmail(receiver):
msg = MIMEText('This is the body of the mail.')
msg['From'] = email.utils.formataddr(('me', myaddr))
msg['To'] = email.utils.formataddr(('me', receiver))
msg['Subject'] = "Python Mail Script"
server = smtplib.SMTP(smtpServer, smtpPort)
try:
server.set_debuglevel(True)
# identify ourselves, prompting server for supported features
server.ehlo()
# If we can encrypt this session, do it
if server.has_extn('STARTTLS'):
server.starttls()
server.ehlo() # re-identify ourselves over TLS connection
server.login("me@...", "...")
server.sendmail("me@...", toAddr, msg.as_string())
finally:
server.quit()
向IP地址發送郵件的輸出是(同樣,我混淆了smtp服務器和郵件/IP地址):
^{pr2}$
有人看到錯誤嗎?在
編輯:在大學里使用自己的smtppostfix服務器(不幸的是無法訪問外部世界),并將郵件發送到郵件到達的服務器的用戶@[IP-ADDRESS]。可能還有另一個跡象表明,在上述有問題的情況下,接收方的smtp服務器不允許IP地址作為目的地。在
編輯2:/var/log/郵件.log在mail.log:Sep 9 00:34:06 mail postfix/qmgr[4854]: A30168560199: from=, size=1197, nrcpt=1 (queue active)
mail.log:Sep 9 00:34:06 mail postfix/smtp[19355]: A30168560199: to=, relay=none, delay=314, delays=313/0.04/0.01/0, dsn=4.4.1, status=deferred (connect to IP-ADDRESS[IP-ADDRESS]:25: Connection refused)
mail.log:Sep 9 00:38:31 mail postfix/smtpd[19907]: warning: Illegal address syntax from my_host_where_the_python_script_runs[IP of me] in RCPT command:
因此,從我使用的SMTP服務器到收件人服務器的連接被拒絕,4分鐘后,SMTP管理員說它收到了錯誤的語法,即使在我通過腳本發送的握手中,它說250 Ok。。。所以基本上我認為收件人SMTP拒絕它。
Thx伙計們