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. DRF 之 版本控制

    1.版本控制是干什么用的,为什么要有版本? 我们都知道每一个程序都是有版本的.而且版本也会升级从v1升级到v2.v3.v4·····,但是我们不可能因为新版本出现旧版本就不去维护,因为用户有权选择不更 ...

  2. iOS RAC常用方法

    一直想写篇关于RAC的文章,一是分享二是做为笔记,由于项目忙先简单的贴一个自己当初学习的时候代码吧 一.RACCommand // RACCommand 的使用: 使用场景,监听按钮点击,网络请求 - ...

  3. UOJ #35. 后缀排序[后缀数组详细整理]

    #35. 后缀排序 统计 描述 提交 自定义测试 这是一道模板题. 读入一个长度为 nn 的由小写英文字母组成的字符串,请把这个字符串的所有非空后缀按字典序从小到大排序,然后按顺序输出后缀的第一个字符 ...

  4. easyui tree的简单使用

    Tree 数据转换 所有节点都包含以下属性: id:节点id,这个很重要到加载远程服务器数据 which is important to load remote data text: 显示的节点文本 ...

  5. Fibonacci数列(找规律)

    题目描述 Fibonacci数列是这样定义的:F[0] = 0F[1] = 1for each i ≥ 2: F[i] = F[i-1] + F[i-2]因此,Fibonacci数列就形如:0, 1, ...

  6. 利用JS判断当前来路域名并跳转到指定页面

    某网站绑定了多个域名,默认情况下访问这些域名的时候是指向网站的首页,也就是访问不同域名时看到的页面是一样的,现在需要访问不同域名时显示不同页面. 一般情况下,可以用子站绑定域名的方法来实现,访问不同的 ...

  7. easyui 日期范围前后台的设置以及实现

    1.页面部分(引入相应的js) <td class="w40 tl pl10">从日期:</td> <td> <input class=& ...

  8. python二维数组初始化

    >>> a=[[0]*3 for i in range(3)]>>> a[[0, 0, 0], [0, 0, 0], [0, 0, 0]]>>> ...

  9. 简易五子棋 V1.1.0

    main.cpp #include "fivechess.cpp" int main() { fivechess a; a.RunGame(); getchar(); return ...

  10. iOS中键盘的收起

    在UIViewController中收起键盘,除了调用相应控件的resignFirstResponder方法之外,还有另外三种方法: 重载UIViewController中的touchesBegin方 ...