python收发邮件的方法
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收发邮件的方法的更多相关文章
- Python收发邮件
发送邮件使用SMTP协议,接受POP3或IMAP: 创建邮件内容email模块,发送邮件smtplib模块.发送邮件比较简单,只需先创建SMTP对象,登录服务器后根据发收邮箱地址发送即可: POP3接 ...
- 转--python -- 收发邮件
官方 import smtplib from email.mime.text import MIMEText from email.header import Header # 发送邮箱服务器 smt ...
- java中javamail收发邮件实现方法
概述 1.邮件相关的标准 厂商所提供的 JavaMail 服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括: SMTP(Simple Mail Transfer Protocol) :即简单邮 ...
- 使用python的email、smtplib、poplib模块收发邮件
使用python的email.smtplib.poplib模块收发邮件 一封电子邮件的旅程是: MUA:Mail User Agent——邮件用户代理.(即类似Outlook的电子邮件软件) MTA: ...
- Outlook Express 收发邮件出现"0x800CCC0F"错误代码解决方法
非常多网友在使用Outlook Express收发邮件的过程中,有时能够发送邮件,但出现不能接收信件的问题.每次在收邮件都会在某个地方停止不动,然后报超时,出现错误代码0x800CCC19或0x800 ...
- python的email、smtplib、poplib模块收发邮件
一封电子邮件的旅程是: MUA:Mail User Agent--邮件用户代理.(即类似Outlook的电子邮件软件) MTA:Mail Transfer Agent--邮件传输代理,就是那些Emai ...
- Python 【收发邮件】
发邮件 smtplib模块主要负责发送邮件 email模块主要负责构造邮件.这两个都是Python内置模块 smtplib.SMTP.方法 #按住Ctrl键并点击SMTP ,会看到对SMTP的解释(v ...
- python SMTP邮件发送(转载)
Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. py ...
- 使用python发邮件
使用python发邮件 网上有很多发邮件的例子,本人在网上找了一份,稍加修改后使用 上源码 # encoding=utf-8 from email.mime.image import MIMEImag ...
随机推荐
- 我遇到的错误curl: (7) Failed to connect to 127.0.0.1 port 1086: Connection refused
今天我用curl命令,无论如何都是出现: curl: (7) Failed to connect to 127.0.0.1 port 1086: Connection refused 找了很久,不知道 ...
- 小程序 单页应用的 tab切换 实现
小程序 单页应用的 tab切换 实现
- mybatis中GenericTokenParser的用法
代码示例 import org.apache.ibatis.parsing.GenericTokenParser;import org.apache.ibatis.parsing.TokenHandl ...
- redis10---Setbit 的实际应用
Setbit 的实际应用 场景: 1亿个用户, 每个用户 登陆/做任意操作 ,记为 今天活跃,否则记为不活跃 每周评出: 有奖活跃用户: 连续7天活动,每月评,等等. 思路: Userid dt ac ...
- Hadoop MapReduce基本原理
一.什么是: MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算.概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都 ...
- vue开发总结(一)
vue使用快一个多月了,从移动端到PC端,踩过的坑也不少.项目的开发是基于element ui 与 mint ui 组件库,下面总结下项目中的一些知识点: 一.网页数据请求 首次进入页面,需要请求数据 ...
- 树状数组(二叉索引树 BIT Fenwick树) *【一维基础模板】(查询区间和+修改更新)
刘汝佳:<训练指南>Page(194) #include <stdio.h> #include <string.h> #include <stdlib.h&g ...
- YTU 2429: C语言习题 学生成绩输入和输出
2429: C语言习题 学生成绩输入和输出 时间限制: 1 Sec 内存限制: 128 MB 提交: 1897 解决: 812 题目描述 编写一个函数print,打印一个学生的成绩数组,该数组中有 ...
- vue 做登陆页面 ( 登陆成功后去掉注册和登陆按钮 显示用户名)
1.当登陆成功 显示用户名且去掉登陆和注册按钮 2.data里声明 后 就在登陆的方法里调用啦 下面说一下登陆的方法. 1.登陆的按钮代码在第一张图片里 2.登陆的弹出框 3.方法 ps:另一种 ...
- 转:Apache-Tomcat各发布包说明
下载地址:http://tomcat.apache.org/发布包说明: apache-tomcat-[version].zip---------------------------基本发布包.这些发 ...