python 2.4中的服务器不支持SMTP AUTH扩展

时间:2012-02-09 17:54:25

标签: 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, Message)
    except Exception,R:
            return R

但不幸的是返回此消息! : SMTP AUTH extension not supported by server.

在我安装了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' object has no attribute 'SMTP_SSL'

此外,我试图在VPS中升级我的python,但发生的事情是损坏整个python,这意味着python根本不起作用。

2 个答案:

答案 0 :(得分:15)

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

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

答案 1 :(得分:0)

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