python 2.4中的服务器不支持SMTP身份验证扩展

python 2.4中的服务器不支持SMTP身份验证扩展,python,linux,smtp,vps,python-2.4,Python,Linux,Smtp,Vps,Python 2.4,这是我的VPS主机中的普通代码,它提供了python 2.4 def mail(receiver,Message): import smtplib try: s=smtplib.SMTP() s.connect("smtp.gmail.com",465) s.login("email@gmail.com", "password") s.sendmail("email@gmail.com", receiver, Mes

这是我的VPS主机中的普通代码,它提供了python 2.4

def mail(receiver,Message):
    import smtplib
    try:
        s=smtplib.SMTP()
        s.connect("smtp.gmail.com",465)
        s.login("email@gmail.com", "password")
        s.sendmail("email@gmail.com", receiver, Message)
    except Exception,R:
            return R
但不幸的是,请返回此消息!: 服务器不支持SMTP身份验证扩展。

在我安装了python 2.7的计算机中,我找到了解决方案,效果非常好,下面是代码:

def mail(T,M):
    import smtplib
    try:
        s=smtplib.SMTP_SSL()
        s.connect("smtp.gmail.com",465)
        s.login("xxxxx@gmail.com","your_password")
        s.sendmail("xxxxx@gmail.com", T, M)
    except Exception,R:
            print R
但是在安装了python 2.4的VPS中没有SMTP_SSL(),并且返回此消息
“module”对象没有属性“SMTP_SSL”

我还尝试在VPS中升级我的python,但结果是破坏了整个python,这意味着python根本无法工作。

是否有
SMTP.starttls()
可用?您也可以这样做,例如:

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

伙计们,谢谢我找到了解决方案,这就是解决方案=)


确切结果^ ^
服务器不支持SMTP身份验证扩展
您不能在连接之前运行
ehlo
starttls
。除了没有任何意义之外,它还会引发一个异常(
SMTPServerDisconnected
)。您不需要进行第一次s.ehlo()调用。s、 starttls()将为您调用它。我在2.7中证实了这一点,2.4文档听起来在该版本中的行为是相同的。可能值得明确指出的是,似乎是双ehlo()使这一功能得以实现。。
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@gmail.com", "password")
        s.sendmail("email@gmail.com", receiver, Message)
    except Exception,R:
            return R