2016-05-14 81 views
5

使用Python的支持我想從我的應用程序發送電子郵件,但它顯示的錯誤SMTP AUTH擴展服務器不

SMTP AUTH extension not supported by server 

代碼程序,

import smtplib 
from email.MIMEMultipart import MIMEMultipart 
from email.MIMEText import MIMEText 
fromaddr = "[email protected]" 
toaddr = "[email protected]" 
msg = MIMEMultipart() 
msg['From'] = fromaddr 
msg['To'] = toaddr 
msg['Subject'] = "Test Mail" 
body = "Test mail from python" 
msg.attach(MIMEText(body, 'plain')) 
server = smtplib.SMTP('smtp.example.com', 25) 
server.ehlo() 
server.starttls() 
server.ehlo() 
server.login(fromaddr, "password") 
text = msg.as_string() 
server.sendmail(fromaddr, toaddr, text) 
server.quit() 

的Telnet輸出:

ehlo test1.example.com 
250-hidden 
250-HELP 
250-SIZE 104857600 
250-ENHANCEDSTATUSCODES 
250-8BITMIME 
250-STARTTLS 
250 OK 

我需要從應用程序進行身份驗證和發送郵件。

回答

8

在登錄和sendemail之前需要連接。

server = smtplib.SMTP('smtp.example.com', 25) 
server.connect("smtp.example.com",465) 
server.ehlo() 
server.starttls() 
server.ehlo() 
server.login(fromaddr, "password") 
text = msg.as_string() 
server.sendmail(fromaddr, toaddr, text) 
server.quit() 
+0

建立連接'server.connect'後,它工作正常。謝謝! – KKD

+0

這將是很好的解釋什麼465在這裏! –

+1

端口465用於SMTPS。如果您未提供任何端口,則默認爲25.使用SMTPS時,SSL加密在任何SMTP級別通信之前自動啓動。 – Kris