使用SMTP库使用python发送电子邮件

时间:2010-11-05 03:10:37

标签: python email smtp

import smtplib

def prompt(prompt):
    return raw_input(prompt).strip()

fromaddr = prompt("From: ")
toaddrs  = prompt("To: ").split()
print "Enter message, end with ^D (Unix) or ^Z (Windows):"


msg = ("From: %s\r\nTo: %s\r\n\r\n"
       % (fromaddr, ", ".join(toaddrs)))
while 1:
    try:
        line = raw_input()
    except EOFError:
        break
    if not line:
       break
    msg = msg + line

    print "Message length is " + repr(len(msg))

server = smtplib.SMTP('smtp.live.com:25')
server.set_debuglevel(1)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()

我正在尝试使用该示例发送电子邮件,但它不起作用,我没有得到任何错误它只是不发送任何东西,我正在尝试将其发送到Hotmail电子邮件。任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:2)

您对smtplib.SMTP()的来电使用无效参数。根据smtplib文档:

  

SMTP([host [,port [,local_hostname [,   超时]]]])

因此,SMTP构造函数接受主机名,端口等的可选参数。但是您已将端口和主机名作为一个参数传递(server = smtplib.SMTP('smtp.live.com:25'))。

如果您将其他内容更改为正确,则将该行更改为server = smtplib.SMTP('smtp.live.com', 25)

如果您的服务器需要身份验证(我怀疑它确实如此),在您实际发送电子邮件之前,您需要致电server.login(user, password)进行登录,以便实际发送邮件。