python实现163邮件发送邮件

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

python实现163邮件发送邮件

#1

帖子 jinjiachen » 2015-12-08 15:25

利用smtplib等模块来实现脚本发送邮件,网上可以找到很多教程,但自己亲测都不可行,不知那个转发的人都试过没 :Faint
经过初步的分析,应该是可以实现登录的,因为我尝试注释发送文字只登录没有错误提示
但是加上要发送的内容就提示出错了,源代码如下

代码: 全选

#coding: utf-8
import smtplib
from email.mime.text import MIMEText  
from email.header import Header

sender = 'xxx@163.com'  
receiver = 'xxx@qq.com'  
subject = 'python email test'  
smtpserver = 'smtp.163.com'  
username = 'xxx'  
password = 'xxx'  
  
msg = MIMEText('Hello','text')#中文需参数‘utf-8’,单字节字符不需要  
msg['Subject'] = Header(subject)  
  
smtp = smtplib.SMTP()  
smtp.connect('smtp.163.com')  
smtp.login(username, password)  
smtp.sendmail(sender, receiver, msg.as_string())  
smtp.quit()  
运行结果见附件
附件
dfs.png
dfs.png (5.76 KiB) 查看 3083 次
头像
qy117121
论坛版主
帖子: 50587
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: python实现163邮件发送邮件

#2

帖子 qy117121 » 2015-12-08 17:39

渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 chuan@ubuntu.org.cn
头像
oneleaf
论坛管理员
帖子: 10455
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

Re: python实现163邮件发送邮件

#3

帖子 oneleaf » 2015-12-08 18:29

程序应该没有问题,只是你的IP发邮件太多,被认为是SPAM了
头像
qy117121
论坛版主
帖子: 50587
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: python实现163邮件发送邮件

#4

帖子 qy117121 » 2015-12-08 19:22

oneleaf 写了:程序应该没有问题,只是你的IP发邮件太多,被认为是SPAM了
怎么会,我用楼主这个不成功,用我发的链接里的成功
测试了好几次
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 chuan@ubuntu.org.cn
头像
AutoXBC
帖子: 1744
注册时间: 2007-10-23 12:54

Re: python实现163邮件发送邮件

#5

帖子 AutoXBC » 2015-12-08 21:39

我路由器里用这个发送邮件,比 python 简单。

代码: 全选

echo -e "to:foo@163.com\nsubject:Some Words" | msmtp -t
需要先配置一下 msmtp,之后只用这一句命令就行了。
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

Re: python实现163邮件发送邮件

#6

帖子 jinjiachen » 2015-12-09 8:18

加入如下代码,就可测试成功

代码: 全选

msg["To"]=receiver
总结下,给出发送的邮件地址是不够的,还要在信息内容部分再一次给出收件人地址,就是如上那条代码,方可发送成功,之前发送不成功的原因就是没有在msg中指定收件方,所以被收件方过滤拦截了 :em09
回复