python发邮件详解_python实现发送邮件详解
[Python]代码
#_*_encoding:utf-8_*_
#script for python3.2
#-------------------------------------------------------------------------------
# Name: 发送邮件
# Purpose:
#
# Author: QiuChangJie
#
# Created: 10/09/2012
# Copyright: (c) cj.qiu 2012
# Licence:
#-------------------------------------------------------------------------------
import os
import smtplib
import mimetypes
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email.mime.audio import MIMEAudio
from email.mime.image import MIMEImage
from email.encoders import encode_base64
MAIL_163_USER = "[email protected]"
MAIL_163_PWD = "test"
MAIL_YEAH_USER = "[email protected]"
MAIL_YEAH_PWD = "test"
MAIL_GOOGLE_HOST = "smtp.gmail.com"
MAIL_163_HOST = "smtp.163.com"
MAIL_YEAH_HOST = "smtp.yeah.com"
RECIPIENT = ["[email protected]"]
ATTACHMENTS = []
class QMail():
def __init__(self, user, pwd, host):
self.mail_user = user
self.mail_pwd = pwd
self.mail_server = smtplib.SMTP()
self.mail_server.connect(host)
self.mail_server.ehlo()
self.mail_server.starttls()
self.mail_server.ehlo()
self.mail_server.login(self.mail_user, self.mail_pwd)
def __del__(self):
self.mail_server.close()
def send_mail(self, recipient, subject, text, att_files=[]):
msg = MIMEMultipart()
msg["From"] = self.mail_user
msg["Subject"] = subject
msg["To"] = ",".join(recipient)
msg.attach(MIMEText(text))
if len(att_files) > 0:
for file_name in att_files:
msg.attach(self.get_attachment(file_name))
self.mail_server.sendmail(self.mail_user, recipient, msg.as_string())
def get_attachment(self, file_name):
content_type, encoding = mimetypes.guess_type(file_name)
if content_type is None or encoding is not None:
content_type = "application/octet-stream"
main_type, sub_type = content_type.split('/', 1)
file = open(file_name, "rb")
if main_type == "text":
attachment = MIMEText(file.read())
elif main_type == 'message':
attachment = email.message_from_file(file)
elif main_type == 'image':
attachment = MIMEImage(file.read(), _subType=sub_type)
elif main_type == 'audio':
attachment = MIMEAudio(file.read(), _subType=sub_type)
else:
attachment = MIMEBase(main_type, sub_type)
attachment.set_payload(file.read())
encode_base64(attachment)
file.close()
attachment.add_header('Content-Disposition', 'attachment', filename=os.path.basename(file_name))
return attachment
def test():
mail = QMail("[email protected]", "test", MAIL_163_HOST)
mail.send_mail(["[email protected]"], "sub_test", "text_test", r"G:\WorkSpace\Doing\CMMI文档模板.dot")
if __name__ == '__main__':
test()
python发邮件详解_python实现发送邮件详解相关推荐
- python自动发邮件富文本_Python自动化测试发送邮件太麻烦?!一起聊一聊 Python 发送邮件的3种方式...
1. 前言 发送邮件,我们在平时工作中经用到,做为测试人员,在自动化测试中用的也比较多,需要发送邮件给某领导 SMTP是Python默认的邮件模块,可以发送纯文本.富文本.HTML 等格式的邮件 今天 ...
- python 发邮件 无需密码_Django实现发送邮件找回密码功能
在各大网站上,一定都遇到过找回密码的问题,通常采用的方式是通过发送带有验证码的邮件进行身份验证,本文将介绍通过Django实现邮件找回密码功能. 找回密码流程 功能流程: 1.首先在用户登录界面,添加 ...
- python发邮件详解 -- smtplib和email模块
文章目录 python发邮件详解,-->smtplib和email模块 1.python发邮件所需要的基础包 2.smtplib的用法 3.email模块的详细理解和使用 A.MIMEText对 ...
- python发邮件详解,smtplib和email模块详解
在介绍具体的实现python发邮件的具体操作之前,我觉得有必要介绍下SMTP,更有助于理解python发邮件的实现原理.SMTP协议属于TCP/IP协议簇,即简单邮件传输协议,它是一组用于由源地址到目 ...
- python 发邮件 timeout_python发送邮件
一.相关模块介绍 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍: 1.smtplib模块 smtplib.SMTP([host[, port[, loca ...
- python发邮件有什么意思_python发邮件要装什么
在介绍具体的实现python发邮件的具体操作之前,我觉得有必要介绍下SMTP,更有助于理解python发邮件的实现原理.SMTP协议属于TCP/IP协议簇,即简单邮件传输协议,它是一组用于由源地址到目 ...
- python发邮件图片太长显示不出来_小白入门,用python 发送定时邮件,将Dataframe转为邮件正文,链接显示为图片...
在实际工作中,我们常常会遇到定时发送邮件的任务,基于我的实践,分享给大家,也许一篇文章写不完,就先列个目录. 本文想要解决的问题: 用python构造一封邮件,并设置定时发送出去.往往,这只是最低级的 ...
- Python发邮件时报错 554
Python发邮件时报错 554 错误: smtplib.SMTPDataError: (554, b'DT:SPM 163 smtp10,DsCowAA3h9_QbgZXI9_fCQ--.713S2 ...
- 网易163邮箱开通smtp邮件协议后用python发邮件
网易SMTP开通及python发邮件 1.登录 2.设置 开启服务 短信验证开启服务 得到授权码 3.发文本代码 4.发html代码 1.登录 网易邮箱登录注册地址 https://email.163 ...
最新文章
- 文本框可编辑查看页面
- koa连接mysql_CentOS 环境 Node + Koa2 连接 MySQL (ECS系列三)
- Uber无人车撞人视频公布,究竟哪儿出问题了?
- Java遇见HTML——JSP篇之JSP指令与动作元素
- iextensionunit类_Java ICompilationUnit.reconcile方法代码示例
- 并发测试工具_软件测试工程师都在用哪些测试工具?
- Mathematica图片局部变色
- ant压缩和解压缩工具类
- html安卓手机打开后只有半屏,宽度设置100%在移动端时变成一半
- linux 安装python3.8的几种方法
- 作为一名程序员,我一直为中国的软件产业感到苦恼。
- python工资这么高为什么不学-为什么那么多人想学 Python?
- 【KDD 2020】会话推荐系统新进展:基于互信息最大化的多知识图谱语义融合
- 字符串转数组和数组转字符串
- FireMonkey 跨平台框架下的图片缩放和 JPEG 编码
- 什么软件可以截取电视剧视频片段?这3款软件极易上手!
- nand flash基础——读写擦操作
- scons 手册_SCons用户手册 | 学步园
- 2010年《杨卫华谈微博架构》视频摘抄
- 【日语入门】促音的基本规则
热门文章
- Vue源码: 关于vm.$watch()内部原理
- CentOS6.7上使用FPM打包制作自己的rpm包
- 菜鸟也学hadoop(1)_搭建单节点的hadoop
- 第38天:运算符、字符串对象常用方法
- 60. Spring Boot写后感【从零开始学Spring Boot】
- Objective-C马路成魔【14-关键C语言功能】
- 有些事情现在不做一辈子就都不会做了
- 监理公司的核心竞争力
- PAZU 是4Fang 为配合“四方在线”软件于2004年开发的WEB打印控件,适用于各种WEB软件项目的打印。...
- 我的blog开张了,希望大家能多多赏光啊