def acptmail():
  email = 'xxx@163.com' #input('Email:')
  password = 'xxx' #input('Password: ')
  pop3_server = 'pop3.163.com'

#下载原始邮件
server = poplib.POP3(pop3_server)
server.set_debuglevel(0)
#print(server.getwelcome().decode('utf-8'))
server.user(email)
server.pass_(password)
#打印邮件数量和占用空间
#print('Message: %s, Size: %s' % server.stat())
resp, mails, octets = server.list()
#print(mails)

#解析邮件
index = len(mails)

#server.tetr(int),返回最顶部的,即邮箱中最新接收到的邮件
resp, lines, octets = server.retr(index)
msg_content = b'\r\n'.join(lines).decode('utf-8')
msg = Parser().parsestr(msg_content)
#print_info(msg)

content = msg.get_payload(decode = True)
msgfrom = msg.get('From', '') 
msgsub = msg.get('Subject', '')#即邮件中的“主题”一栏

  发送邮件时,邮件服务器会检测是否为垃圾邮件,或恶意邮件等,没有通过其过滤的话就会报DataError,

此时需要规范发送内容和格式,以上程序的格式可以发送,如果还是不能发送,就需要改动一下邮件内容,使其

看起来“正经”一点

def send_mail(mailaddr):

#msg=email.mime.multipart.MIMEMultipart()
#以这种格式发送简单文本,先发送内容再给msg的各项属性赋值
content="hello!" #以上是邮件的内容
msg=email.mime.text.MIMEText(content)
msg['from']='xxx@163.com' #发送端地址
msg['to']=mailaddr #接受端地址
msg['subject']=Header('hey boy!','utf-8') #邮件的标题

#msg.attach(txt)

#smtp=smtplib
smtp=smtplib.SMTP() #创建一个SMTP对象
smtp.connect('smtp.163.com') #使用connect方法链接到新浪邮件服务器的25号端口
smtp.login('xxx@163.com','xxx') #登入发送端需要账号验证
smtp.sendmail('xxx@163.com',mailaddr,str(msg)) #邮件发送,括号内的顺序是(发送端,接收端,文件内容)
smtp.close()

收发邮件的最大问题,就是编码转换的问题,以上程序只能收取简单的字符串,若是正常邮件,很可能会有乱码问题,关于这个问题,有大神已经写好编码判断和转换的方法,贴在下面:http://blog.csdn.net/kornberg_fresnel/article/details/51227761

另外,找到一篇发送各种邮件的方法:http://www.cnblogs.com/UnGeek/p/5830525.html

python收发邮件的方法的更多相关文章

  1. Python收发邮件

    发送邮件使用SMTP协议,接受POP3或IMAP: 创建邮件内容email模块,发送邮件smtplib模块.发送邮件比较简单,只需先创建SMTP对象,登录服务器后根据发收邮箱地址发送即可: POP3接 ...

  2. 转--python -- 收发邮件

    官方 import smtplib from email.mime.text import MIMEText from email.header import Header # 发送邮箱服务器 smt ...

  3. java中javamail收发邮件实现方法

    概述 1.邮件相关的标准 厂商所提供的 JavaMail 服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括: SMTP(Simple Mail Transfer Protocol) :即简单邮 ...

  4. 使用python的email、smtplib、poplib模块收发邮件

    使用python的email.smtplib.poplib模块收发邮件 一封电子邮件的旅程是: MUA:Mail User Agent——邮件用户代理.(即类似Outlook的电子邮件软件) MTA: ...

  5. Outlook Express 收发邮件出现"0x800CCC0F"错误代码解决方法

    非常多网友在使用Outlook Express收发邮件的过程中,有时能够发送邮件,但出现不能接收信件的问题.每次在收邮件都会在某个地方停止不动,然后报超时,出现错误代码0x800CCC19或0x800 ...

  6. python的email、smtplib、poplib模块收发邮件

    一封电子邮件的旅程是: MUA:Mail User Agent--邮件用户代理.(即类似Outlook的电子邮件软件) MTA:Mail Transfer Agent--邮件传输代理,就是那些Emai ...

  7. Python 【收发邮件】

    发邮件 smtplib模块主要负责发送邮件 email模块主要负责构造邮件.这两个都是Python内置模块 smtplib.SMTP.方法 #按住Ctrl键并点击SMTP ,会看到对SMTP的解释(v ...

  8. python SMTP邮件发送(转载)

    Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. py ...

  9. 使用python发邮件

    使用python发邮件 网上有很多发邮件的例子,本人在网上找了一份,稍加修改后使用 上源码 # encoding=utf-8 from email.mime.image import MIMEImag ...

随机推荐

  1. Andriod Atom x86模拟器启动报错。

    用Inter Atom模式的Android模拟器启动报一下错误: Starting emulator for AVD 'new' emulator: ERROR: x86 emulation curr ...

  2. MRUnit测试

    新建一个专门的测试类,代码如下: wordcount的map函数输入string line,      输出<单词 , 1> 右键-> run as junit 出错了,因为输出不是 ...

  3. uptime详解,最通俗的说明了cpu平均负载

    今天又个网友问uptime的三个平均负载值具体要怎么理解,发现要自己解释还真不知道怎么表达~~~~,下面到网上找了篇文章给大家分享:   uptime命令,有两大用处,一个是看您的机器的运行时间,另一 ...

  4. 织梦DedeCMS未审核文章更新为当前时间

    对于个人站长来说,每天文章的更新量都是个巨大的问题,例如,立信CPA培训注册会计师考试网站,有时候我们去别的网站采集大量的文章,然后自己进行手工整理伪原创,但是审核的时候,时间却是采集发布的时间.一方 ...

  5. hdu 2680 Choose the best route 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2680 题目意思:实质就是给定一个多源点到单一终点的最短路. 卑鄙题---有向图.初始化map时 千万不 ...

  6. 让th里面的东西自动换行

    让th里面的东西自动换行 html中的TH里面的文字不管多长,始终是一行,很烦 <th style="word-wrap:break-word;">aaaaaaaaaa ...

  7. (转)Linux下 SVN客户端安装

    原地址:http://rtxbc.iteye.com/blog/860092 今天有现场程序连svn服务器一直有异常,于是在现场linux下安装svn client来直接测试,看问题原因: 一:安装s ...

  8. Hadoop的jobhistoryserver配置

    配置mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</na ...

  9. 子元素margin带动父元素拖动

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. AJAX --- 一种创建交互式网页应用的网页开发技术

    目录 AJAX 创建XHR实例 指定readyStatechange事件处理程序 启动请求 发送请求 接收数据 取消XHR请求/响应 AJAX ajax核心技术就是 XMLHttpRequest 对象 ...