python3 发邮件 smtplib & email 库
嗨 实现了用163发送到qq的功能,遗留了两个问题:
1. 接收者list会报错;
update:因为list[]会传递过去一个真的[]list,改成如下就可以了:
before:
maillist=['a@qq.com','b@qq.com']
msg['To']=maillist
print (maillist) -->['a@qq.com', 'b@qq.com'] after:
maillist = ['a@qq.com','b@qq.com']
msg['To'] = ','.join(maillist)
print(maillist) --> a@qq.com,b@qq.com
2. msg.as_string() 是什么意思?
update:就是把msg转成string了
揍是不想google了啊喂,感觉最近google越来越查不到想要的答案了。
update:还是得继续google下去,继续求问下去啊,另外,官方英文文档看了也看不懂,囧了个囧

贴上部分代码,方便懒人copy:
def sendmail(subject, content):
email_host = 'smtp.163.com' # 发送者是163邮箱
email_user = '发送者邮箱账号,我用汉字替换掉' # 发送者账号
email_pwd = '发送者邮箱密码,我用汉字替换掉' # 发送者密码
maillist ='接收者邮箱账号,我用汉字替换掉' # 接收者账号,本来想写成[]list的,但是报错,还没解决!
me = email_user
# 三个参数:第一个为文本内容,第二个 html 设置文本格式,第三个 utf-8 设置编码
msg = MIMEText(content, 'html', 'utf-8') # 邮件内容
msg['Subject'] = subject # 邮件主题
msg['From'] = me # 发送者账号
msg['To'] = maillist # 接收者账号列表(列表没实现) smtp = smtplib.SMTP(email_host) # 如上变量定义的,是163邮箱
smtp.login(email_user, email_pwd) # 发送者的邮箱账号,密码
smtp.sendmail(me, maillist, msg.as_string()) # 参数分别是发送者,接收者,第三个不知道
smtp.quit() # 发送完毕后退出smtp
print ('email send success.') sendmail('主题', '内容') # 调用发送邮箱的函数
还有第二种方法也实现了,不过我喜欢上面那种,是loveisbug写的,感觉很程序
第二种是从网上找的,作者忘了,真忘了,昨天搜的
import smtplib
import email.mime.multipart
import email.mime.text msg = email.mime.multipart.MIMEMultipart()
msg['from'] = '发送者的邮箱账号'
msg['to'] = '接收者的邮箱账号'
msg['subject'] = 'test,这是邮件主题'
content = '''''
你好,
这是一封自动发送的邮件的内容。
'''
txt = email.mime.text.MIMEText(content)
msg.attach(txt) smtp = smtplib
smtp = smtplib.SMTP()
smtp.connect('smtp.163.com') # 使用的发送者邮箱的那啥来着,post
smtp.login('发送者的邮箱账号', '发送者的邮箱密码')
smtp.sendmail('发送者的邮箱账号', '接收者的邮箱账号', str(msg))
smtp.quit()
python3 发邮件 smtplib & email 库的更多相关文章
- Python自动发邮件——smtplib和email库和yagmail库
''' 一.先导入smtplib模块 导入MIMEText库用来做纯文本的邮件模板 二.发邮件几个相关的参数,每个邮箱的发件服务器不一样,以163为例子百度搜索服务器是 smtp.163.com 三. ...
- python3发邮件脚本
官方文档中建议保存token,且token是每2小时更新一次. 所以token先保存在本地token.txt文件夹中,设定计划任务每1小时删除一下token.txt.虽然造成了浪费,对于发消息不多的人 ...
- 【转】python3 发邮件实例(包括:文本、html、图片、附件、SSL、群邮件)
特别留意群邮件方式,这是工作中用得多的. 附件,HTML,图片,都需要的. 文件形式的邮件 [python] view plain copy 1.#!/usr/bin/env python3 2.#c ...
- 发邮件 和 excel导出中文文件名
/** * 发邮件 * @param email * @param subject * @param body * @throws UnsupportedEncodingException */ pu ...
- python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件
python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件 使用qq的邮件服务器需要注意的两个地方主要是: 1.协议问题 使用465端口 SSL 协议 2.口令问题 出现SMTPA ...
- 【Python】 发邮件用 smtplib & email
smtplib & email ■ 概述 发邮件主要用到smtplib以及email模块.stmplib用于邮箱和服务器间的连接,发送的步骤.email模块主要用于处理编码,邮件内容等等.主要 ...
- python自动发邮件库yagmail
#### 一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from ...
- Python自动发邮件-yagmail库
之前写过用标准库使用Python Smtplib和email发送邮件,感觉很繁琐,久了不用之后便忘记了.前几天看知乎哪些Python库让你相见恨晚?,看到了yagmail第三方库,学习过程中遇到一些问 ...
- Python自动发送邮件-smtplib和email库
''' 一.先导入smtplib模块 导入MIMEText库用来做纯文本的邮件模板 二.发邮件几个相关的参数,每个邮箱的发件服务器不一样,以163为例子百度搜索服务器是 smtp.163.com 三. ...
随机推荐
- 前端JavaScript(3)-关于DOM操作的相关案例,JS中的面向对象、定时器、BOM、位置信息
小例子: 京东购物车 京东购物车效果: 实现原理: 用2个盒子,就可以完整效果. 先让上面的小盒子向下移动1px,此时就出现了压盖效果.小盒子设置z-index压盖大盒子,将小盒子的下边框去掉,就可以 ...
- mysql ibd 文件过大问题
公司的数据库挂了查了下 ,每个表都有自己独立的表空间,有一张表的ibd 文件有好几G了.然后想要释放它. 解决方案: 第一种,删除表,然后重新建.drop table 操作自动回收表空间 第二种,al ...
- tomcat7 fail to start inside Ubuntu Docker container
The tomcat startup script needs some special privileges. Concrete it needs to check all running proc ...
- jQuery.data() 与 jQuery(elem).data()源码解读
之前一直以为 jQuery(elem).data()是在内部调用了 jQuery.data(),看了代码后发现不是.但是这两个还是需要放在一起看,因为它们内部都使用了jQuery的数据缓存机制.好吧, ...
- IQueryable和IEnumerable的区别
- SQL server下所有表名及字段名及注释查询
--查询所有表及注释SELECTA.name ,C.valueFROM sys.tables A LEFT JOIN sys.extended_properties C ON C.major_id = ...
- 关于使用memcached提高并发的文章,很有用
http://blog.csdn.net/ywh147/article/details/9385137 http://phl.iteye.com/category/292555 memcached 解 ...
- 1979 第K个数
1979 第K个数 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 黄金 Gold 题目描述 Description 给定一个长度为N(0<n<=10000) ...
- 零基础逆向工程11_C语言05_结构体
结构体小结 结构体是按照分配的大小,局部变量会自动数据对齐 1字节对齐,省空间,但cpu查找效率低 4字节对齐,不省空间,但cpu查找效率高 VC6默认的结构对齐大小 项目右键-> settin ...
- 常用的图片相关方法,读取,保存,压缩,缩放,旋转,drawable转化
import android.content.Context; import android.content.res.AssetManager; import android.content.res. ...