Python 2.4中服务器不支持SMTP AUTH扩展
这是我在我的虚拟私人服务器(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扩展不被服务器支持。
在我安装了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完全不能用了。
2 个回答
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
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