python使用smtplib和email发送腾讯企业邮箱邮件

  公司每天要发送日报,最近没事搞了一下如何自动发邮件,用的是腾讯企业邮箱,跟大家分享一下我的研究过程吧。

以前弄的发邮件的是用qq邮箱发的,当时在网上查资料最后达到了能发图片,网页,自定义收件人展示,主题等比较简

单的,但没想到说发送个word附件,后来才发现原来email里的MIMEText就可以,先上代码吧

 1 #coding:utf8
 2 ‘‘‘
 3 日报
 4 ‘‘‘
 5 import email
 6 import smtplib
 7 import os
 8 from email.mime.text import MIMEText
 9 from email.mime.multipart import MIMEMultipart
10
11 class MyEmail:
12     def __init__(self):
13         self.user = None
14         self.passwd = None
15         self.to_list = []
16         self.cc_list = []
17         self.tag = None
18         self.doc = None
19
20
21     def send(self):
22         ‘‘‘
23         发送邮件
24         ‘‘‘
25         try:27             server = smtplib.SMTP_SSL("smtp.exmail.qq.com",port=465)
28             server.login(self.user,self.passwd)
29             server.sendmail("<%s>"%self.user, self.to_list, self.get_attach())
30             server.close()
31             print "send email successful"
32         except Exception,e:
33             print "send email failed %s"%e45
46     def get_attach(self):
47         ‘‘‘
48         构造邮件内容
49         ‘‘‘
50         attach = MIMEMultipart()
51         if self.tag is not None:
52             #主题,最上面的一行
53             attach["Subject"] = self.tag
54         if self.user is not None:
55             #显示在发件人
56             attach["From"] = "发件人姓名,可以自定义<%s>"%self.user
57         if self.to_list:
58             #收件人列表
59             attach["To"] = ";".join(self.to_list)
60         if self.cc_list:
61             #抄送列表
62             attach["Cc"] = ";".join(self.cc_list)
63         if self.doc:
64             #估计任何文件都可以用base64,比如rar等
65             #文件名汉字用gbk编码代替
66             name = os.path.basename(self.doc).encode("gbk")
67             f = open(self.doc,"rb")
68             doc = MIMEText(f.read(), "base64", "gb2312")
69             doc["Content-Type"] = ‘application/octet-stream‘
70             doc["Content-Disposition"] = ‘attachment; filename="‘+name+‘"‘
71             attach.attach(doc)
72             f.close()
73         return attach.as_string()
74
75
76 if __name__=="__main__":
77     my = MyEmail()
78
79     my.user = "[email protected]"
80     my.passwd = "password"
81     my.to_list = ["",]
82     my.cc_list = ["",]
83     my.tag = "日报"
84     my.doc = u"C:\Documents and Settings\Administrator\Desktop\日报.doc"
85     my.send()

(好吧,第一次发,还不会编辑,怎么插入代码后就不能在外面写字了??)

在这里继续吧首先使用腾讯企业邮箱需要使用ssl,不过在smtplib中有这个功能,一般使用SMTP,需要ssl的时候使用SMTP_SSL,在明白这个之前我费了好大的力气去找怎么用ssl,后来才发现原来除了换个模块外别的根本不用变化,在登录的时候我用的是@前面的帐号名,一直上不去,一直不知道为什么,第二天心里突然闪过一个想法:把完整邮箱地址当做帐号,一试,哈哈,登录成功了然后就是发送附件了,首先是需要发送一个word文档,找了半天才发现用
(from email.mime.text import MIMEText)
MIMEText就可以,本来我以为他只能处理文本的T0T,原来他不仅可以处理文本,doc,rar都可以用它添加到附件里,只要在初始化的时候使用base64就可以,后面的参数是doc使用的字符集吧,这个没研究过,不确定
doc["Content-Type"] = ‘application/octet-stream‘
doc["Content-Disposition"] = ‘attachment; filename=123.doc‘

这个指定类型和描述,在描述里可以自定义文件名貌似这个文件名是gbk编码的,我的附件名字是中文,先使用u""把文件名声明为unicode,再转为gbk,如果使用unicode的话好像不行,文件名会变成系统定义的文件名,不过文件仍然可以用,下载下来改个名字没什么区别,使用utf8会出现乱码

				
时间: 2024-08-08 10:49:35

python使用smtplib和email发送腾讯企业邮箱邮件的相关文章

GITLAB email不发送腾讯企业邮箱解决方案

废话不说,直接给思路 gitlab重部署后新加用户不发送激活邮件,配置如下: gitlab_rails['smtp_enable']=true gitlab_rails['smtp_address']="smtp.exmail.qq.com" gitlab_rails['smtp_port']=465 gitlab_rails['smtp_user_name']="[email protected]" gitlab_rails['smtp_password']=&q

python收取邮件(腾讯企业邮箱)

记录下我用python登入腾讯企业邮箱收取邮件 一.要用python收取邮件先要会3个类 imaplib  用来收取邮件 imaplib 里面我们注意几个方法: login  使用明文密码识别客户端.该密码将被引用. select 选择一个邮箱.返回的数据是邮箱中的邮件计数 (EXISTS响应).默认邮箱是'INBOX'.如果 设置了只读标志,则不允许对邮箱进行修改. search 搜索邮箱以查找匹配的邮件 BeautifulSoup 用来解析 text/html 和 txet/plain 类型

Java + 腾讯企业邮箱 + javamail + SSL 发送邮件

说实话腾讯的企业邮箱真心不错! 腾讯企业邮箱官网:http://exmail.qq.com/login/ 新用户注册:http://exmail.qq.com/onlinesell/intro 点击开通 你跟着步骤走就行了,没啥难的,如果你没有域名,你就去买一个呗,也花不了多少钱的. 注册成功后,是这个页面,并且会有一个弹窗告诉你一些信息 现在你点击添加成员,因为你不添加成员的话你是无法发送邮件的. 完成后是这样 然后你打开腾讯企业邮箱登录界面,输入你刚才增加的成员邮箱的:登录名 + 密码,进去

腾讯企业邮箱API实现单点登录和获取企业未读邮件

应公司要求在ERP平台的OA系统上显示企业邮箱的未读邮件数量,并且实现单点登录.也就是点击数字可以直接进入腾讯企业邮箱不用登录.既然用到这个API肯定大家也都有腾讯企业邮箱OpenApi协议v1.4文档了.我这是1.4的. 有了文档就可以按照上面的步骤根据需要调用API就可以了.刚开始的时候拿到这个文档都还不知道怎么做,百度下感觉效果不明显,所以想写一个稍微完整一点的实例可以供大家参考 首先我是用Java写的,根据文档需要去访问它给的地址并携带正确参数才能返回我们需要的结果. 为了发送请求所以用

解析腾讯企业邮箱到自己域名,设置mail的cname

之前注册了腾讯企业邮的免费邮箱,后来想把企业邮箱和域名绑定起来,发现了一些问题. 先来看正常的部分,假设你已经注册过了腾讯企业邮箱免费版,并且已经绑定好了域名. 然后在域名提供商那里设置域名解析的MX记录. 大家可以看到,企业邮箱其实与你的服务器没有任何关系,你可以选择任何一家的企业邮箱,譬如阿里云企业邮箱,网易的,或者腾讯的.我比较推荐阿里云的. 你只需要注册完企业邮箱后,绑定上你的域名,然后在这个地方设置MX记录来指向你的企业邮箱使用说明里要求设置的地址即可.一般的还需要设置一个txt记录来

GitLab11.3.9 使用 Crowd3.3.2 的帐号实现 SSO 单点登录,以及GitLab配置腾讯企业邮箱

GitLab11.3.9 的安装方法: 点击查看. ??Crowd3.3.2 的安装方法:点击查看. ??需要先在 Crowd 创建应用程序,参考 <Docker 创建 Crowd3.3.2 以及打通 Jira Software7.12.3和Confluence6.12.2 SSO 单点登录> 中的 4.12章节,在 Application type 选择 Generic Application, Description 输入Gitlab Applicaton, Name 输入 gitlab,

ubuntu 14.04 下evolution邮箱客户端设置(腾讯企业邮箱)

安装 evolution 有PPA可用,支持 Ubuntu 14.04 及衍生系统.打开终端,输入以下命令: sudo add-apt-repository ppa:fta/gnome3 sudo apt-get update sudo apt-get install evolution 卸载 evolution 命令: sudo apt-get remove evolution 配置: 在使用腾讯的邮箱时,都必须使用SSL加密 普通的qq邮箱 username 填写 邮箱名称 用户名:你的邮箱

腾讯企业邮箱免费版

3.4 腾讯企业邮箱免费版 使用自己域名的邮箱.比如公司的邮箱域名. 我下面以我的域名来操作. 1.首先自己先有个域名(我之前注册的域名在西部数码上购买的一年才39,www.caimz.cn). 2.其次就是去QQ企业邮箱免费版申请一个账号. 然后登陆管理界面,此时会收到一个域名绑定的提示.我的如下: 然后我要去我的域名管理的网站上去填写的我的申请的MX记录. 请您先登录到域名解析页面登录西部数码官网后台管理中心---业务管理---域名管理-----管理---域名解析 添加两条. 退出,等待生效

腾讯企业邮箱 POP3/SMTP 设置

下午魅族MX2刷完机,原先配置的公司邮箱还要重新配置.有些地方需要改,找到了篇文章,如下: 腾讯企业邮箱支持通过客户端进行邮件管理.POP3/SMTP协议收发邮件服务器地址分别如下.接收邮件服务器:pop.exmail.qq.com (端口 110)发送邮件服务器:smtp.exmail.qq.com (端口 25)同时支持SSL加密方式登录,此时需要更改一下端口号. 配置成功!因此记之,以备不时之需. 主要参考:腾讯QQ企业邮箱POP3/SMTP设置