web-dev-qa-db-ja.com

SMTP AUTH拡張はサーバーでサポートされていません

pythonアプリからメールを送信したいが、エラーが表示される

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

アプリからメールを認証して送信する必要があります。

21
KKD

ログインと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()
36
Kris

それはおそらく私が使用していたサーバーだけですが、承認されたソリューションを実装した後でもOPと同じエラーが発生していました。サーバーがログインを必要としていないことが判明したため、server.login(fromaddr, "password")行を削除した後、エラーはなくなり、機能しました。

0
cardamom
import smtplib

    s = smtlib.SMTP('smtplib.gmail.com',587)
    s.ehlo()
    s.starttls()
    s.login('frmaddr','password')
    try:
        s.sendmail('fromaddr','toaddr','message')
    except:
        print (failed)
0
Bobzz kenya