2016-05-14 11 views
5

Sử dụng python Tôi muốn gửi email từ ứng dụng của tôi, nhưng nó hiển thị lỗiSMTP AUTH phần mở rộng không được hỗ trợ bởi máy chủ

SMTP AUTH extension not supported by server 

Mã cho chương trình,

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 Output:

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

Tôi cần xác thực và gửi thư từ ứng dụng.

Trả lời

8

cần có kết nối trước khi đăng nhập và gửi email.

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

Sau khi hoàn thành kết nối 'server.connect', nó hoạt động tốt. Cảm ơn! – KKD

+0

Sẽ rất tốt nếu bạn giải thích 465 là gì! –

+1

Cổng 465 dành cho SMTPS. Nếu bạn không cung cấp bất kỳ cổng nào, nó mặc định là 25. Mã hóa SSL được bắt đầu tự động trước bất kỳ giao tiếp mức SMTP nào khi sử dụng SMTPS. – Kris

Các vấn đề liên quan