2016-05-14 1 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

何がここにあるのか説明することは良いことでしょう! –

+1

ポート465はSMTPS用です。ポートを指定しない場合は、デフォルトで25に設定されます。SMTPSを使用する場合は、SMTPレベルの通信より前にSSL暗号化が自動的に開始されます。 – Kris

関連する問題