[python] 邮件格式问题?

ken_scott 2012-03-12 03:42:52

#!/usr/bin/python

"my_mail.py"

import smtplib
import poplib
import time

SMTPSVR = "email.163.com" # "smtp.python.is.cool"
POP3SVR = "email.163.com" # "pop.python.is.cool"

SENDER = RECVER = "ken_scott@163.com" # "wesley@python.is.cool"
USER = "ken_scott" # "wesley"
PAWD = "k*****" # "youllNeverGuess"

origHdrs = ["From: %s" % SENDER, "To: %s" % RECVER, "Subject: test msg"]
origBody = ["xxx", "yyy", "zzz"]
origMsg = "\r\n\r\n".join(["\r\n".join(origHdrs), "\r\n".join(origBody)])

sendSvr = smtplib.SMTP(SMTPSVR)
errs = sendSvr.sendmail(SENDER, (RECVER,), origMsg)
sendSvr.quit()
assert len(errs) == 0, errs
time.time(10) # wait for mail to be delivered

recvSvr = poplib.POP3(POP3SVR)
recvSvr.user(USER)
recvSvr.pass_(PAWD)
rsp, msg, siz = recvSvr.retr(recvSvr.stat()[0])
sep = msg.index(" ")
recvBody = msg[sep+1:]
assert origBody == recvBody # assert identical

代码基本是从书上抄的, 运行不了(Name or service not known),
修改成我的真实邮箱地址还是没用(不过变成了Connection refused),
不知道是不是SMTPSVR/POP3SVR填错了?
谢谢!
...全文
66 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ken_scott 2012-03-13
  • 打赏
  • 举报
回复

#!/usr/bin/python

"my_mail.py"

import smtplib
import poplib
import time

SMTPSVR = "smtp.163.com"
POP3SVR = "pop.163.com"

SENDER = RECVER = "pythontester@163.com"
USER = "pythontester"
PAWD = "testpython"

origHdrs = ["From: %s" % SENDER, "To: %s" % RECVER, "Subject: test msg"]
origBody = ["xxx", "yyy", "zzz"]
origMsg = "\r\n\r\n".join(["\r\n".join(origHdrs), "\r\n".join(origBody)])

sendSvr = smtplib.SMTP(SMTPSVR)
sendSvr.login(USER, PAWD) #
errs = sendSvr.sendmail(SENDER, (RECVER,), origMsg)
sendSvr.quit()
assert len(errs) == 0, errs
time.sleep(10) # wait for mail to be delivered

recvSvr = poplib.POP3(POP3SVR)
recvSvr.user(USER)
recvSvr.pass_(PAWD)
rsp, msg, siz = recvSvr.retr(recvSvr.stat()[0])
sep = msg.index("") # empty-string
recvBody = msg[sep+1:]
assert origBody == recvBody # assert identical

print "done"

上面是修改后的代码, 可直接用
ken_scott 2012-03-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 angel_su 的回复:]
163邮箱要登录认证的吧,代码类似:
...
SMTPSVR = 'smtp.163.com'
...
sendSvr = smtplib.SMTP(SMTPSVR)
sendSvr.login(USER, PAWD)
...
[/Quote]
谢谢, 可以了
Gloveing 2012-03-12
  • 打赏
  • 举报
回复
url错了
SMTPSVR = "email.163.com" # "smtp.python.is.cool"
POP3SVR = "email.163.com" # "pop.python.is.cool"


angel_su 2012-03-12
  • 打赏
  • 举报
回复
163邮箱要登录认证的吧,代码类似:
...
SMTPSVR = 'smtp.163.com'
...
sendSvr = smtplib.SMTP(SMTPSVR)
sendSvr.login(USER, PAWD)
...

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧