SMTP AUTH extension not supported by server in python 2.4
Asked Answered
L

2

13

This is my normal code in my VPS hosting which provide python 2.4

def mail(receiver,Message):
    import smtplib
    try:
        s=smtplib.SMTP()
        s.connect("smtp.gmail.com",465)
        s.login("[email protected]", "password")
        s.sendmail("[email protected]", receiver, Message)
    except Exception,R:
            return R

but unfortunately return this message! : SMTP AUTH extension not supported by server.

in my computer which i've install python 2.7 i found the solution and it's work very good here is this code :

def mail(T,M):
    import smtplib
    try:
        s=smtplib.SMTP_SSL()
        s.connect("smtp.gmail.com",465)
        s.login("[email protected]","your_password")
        s.sendmail("[email protected]", T, M)
    except Exception,R:
            print R

But in the VPS which installed python 2.4 doesn't have SMTP_SSL() and return this message 'module' object has no attribute 'SMTP_SSL'

Also i've tried to upgrade my python in VPS but what happened is Damage the whole python that mean python not work at all.

Longlongan answered 9/2, 2012 at 17:54 Comment(0)
L
15

Guys thanks i've found the solution and this is the solution =)

def mail(receiver,Message):
    import smtplib
    try:
        s=smtplib.SMTP()
        s.connect("smtp.gmail.com",465)
        s.ehlo()
        s.starttls()
        s.ehlo()
        s.login("[email protected]", "password")
        s.sendmail("[email protected]", receiver, Message)
    except Exception,R:
            return R
Longlongan answered 10/2, 2012 at 7:37 Comment(3)
You can't run ehlo or starttls before connection. Besides not making any sense, it raises an exception (SMTPServerDisconnected).Whiz
You don't need to make the first s.ehlo() call. s.starttls() will call it for you. I confirmed this in 2.7, the 2.4 docs sound like it behaves the same way in that version.Alicyclic
It might be worth explicitly saying that it's the double ehlo() that appears to make this work..Florrieflorry
B
0

Is SMTP.starttls() available? You can also do e.g.:

def mail(receiver,Message):
    import smtplib
    try:
        s=smtplib.SMTP()
        s.connect("smtp.gmail.com",587)
        s.starttls()
        s.login("[email protected]", "password")
        s.sendmail("[email protected]", receiver, Message)
    except Exception,R:
            return R
Bootee answered 9/2, 2012 at 20:57 Comment(1)
exact result ^_^ SMTP AUTH extension not supported by serverLonglongan

© 2022 - 2024 — McMap. All rights reserved.