python3实现邮件的发送
时间:2022-07-22
本文章向大家介绍python3实现邮件的发送,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
使用的email和smtplib模块,这里简单介绍下smtplib.SMTP()类
SMTP.set_debuglevel(level):设置输出debug调试信息,默认不输出
SMTP.connect([host[, port]]):连接到指定的SMTP服务器
SMTP.login(user, password):登录SMTP服务器
SMTP.sendmail(from_addr, to_addrs, msg, mail_options=[], rcpt_options=[]):from_addr:邮件发件人,to_addrs:邮件收件人,msg:发送消息
SMTP.quit():关闭SMTP会话
SMTP.close():关闭SMTP服务器连接
最简单的邮件实现
email用来构造邮件
smtplib用来发送邮件
import smtplib
from email.header import Header
from email.mime.text import MIMEText
mail_host = "smtp.xxx.com"
mail_user = "xxx@xxxx.com"
mail_pass = "xxxxx"
sender = "xxx@xxx.com"
receivers = ['xxx@xxx.com']
content = '你是一只傻狗吗?是的!'
title = '傻狗'
def sendEmail():
msg = MIMEText(content,'plain','utf-8')
msg['From'] = "{}".format(sender)
msg['To'] = ",".join(receivers)
msg['Subject'] = title
try:
smtpObj = smtplib.SMTP_SSL(mail_host,465)
smtpObj.login(mail_user,mail_pass)
smtpObj.sendmail(sender,receivers,msg.as_string())
print('mail send successful.')
except smtplib.SMTPException as e:
print(e)
if __name__ == '__main__':
sendEmail()
– 注意
这里的msg = MIMEText(content,’plain’,’utf-8′),content是要发送的邮件内容,第二个参数是MIME的subtype,这里是plain,其他的还有html,带附件的邮件,utf-8保证语言多样性。
login()用来登陆邮箱,sendmail()用来发邮件,as_string()用来把MIMEText转换成str。
下面使用Class对象方法来改善下这个程序
import smtplib
from email.header import Header
from email.mime.text import MIMEText
class SendMail():
def __init__(self,mail_host,mail_user,mail_pass,sender,receivers,content,title):
self.mail_host = mail_host
self.mail_user = mail_user
self.mail_pass = mail_pass
self.sender = sender
self.receivers = receivers
self.content = content
self.title = title
def sendEmail(self):
msg = MIMEText(content,'plain','utf-8')
msg['From'] = "{}".format(sender)
msg['To'] = ",".join(receivers)
msg['Subject'] = title
try:
smtpObj = smtplib.SMTP_SSL(mail_host,465)
smtpObj.login(mail_user,mail_pass)
smtpObj.sendmail(sender,receivers,msg.as_string())
print('mail send successful.')
except smtplib.SMTPException as e:
print(e)
if __name__ == '__main__':
mail_host = "smtp.xxx.com"
mail_user = "xxxx@xxx.com"
mail_pass = "xxxxx"
sender = "xxxx@xxx.com"
receivers = ['xxxxxxx@xx.com','xxx@xxx.com','xxxx@xx.com']
content = '你是一只傻狗吗?是的!'
title = '傻狗'
m = SendMail(mail_host,mail_user,mail_pass,sender,receivers,content,title)
m.sendEmail()
再来优化下,去掉一些不必要的,另外再改成可以通过命令行传参的方式
未完待续。。。。。。
- Flash/Flex学习笔记(39):弹性运动
- 兼容Mono的下一代云环境Web开发框架ASP.NET vNext
- ASP.NET vNext 概述
- 丰富排版页面——为你的wordpress主题添加短代码形式美化框
- 开放式管理基础结构 OMI
- 人类设计了游戏和AI 2017年AI在游戏中打败了人类
- WordPress 代码实现相关文章(列表模式)功能
- 自动刷新页面
- Python语言被列入全国计算机等级考试科目中
- WordPress纯代码高仿 无觅相关文章 图文模式功能
- 各种序列化库的性能数据
- WordPress内置搜索结果只有一篇文章时自动跳转到该文章
- Flash/Flex学习笔记(23):运动学原理
- WordPress重定向作者归档链接到“关于”页面
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- js删除数组对象中符合条件的数据
- .net core webapi jwt 更为清爽的认证 ,续期很简单(2)
- 手把手教你写一个windows服务 【基于.net】 附实用小工具{注册服务/开启服务/停止服务/删除服务}
- 一网打尽枚举操作 .net core
- Jenkins 发布.net core 程序,服务端无法下载nuget包的解决方法 error NU1102: 找不到版本为 (>= 3.1.6) 的包
- NET Core Kestrel部署HTTPS 一个服务器绑一个证书 一个服务器绑多个证书
- .net core webapi jwt 更为清爽的认证 ,续期很简单(1)
- 用flask来在线管理你的iptables
- Linux Shell命令速查表
- Windows10实现滑动锁屏
- Vue&uni-app在微信浏览器隐藏titleNView的一个方法
- 使用OData服务将SAP C4C自定义BO的TextCollection暴露给外部消费者
- 如何在SAP C4C AdvancedListPane上批量执行若干BO实例的action
- SAP ABAP Webdynpro ALV的link to action的实现方法
- SAP CRM和C4C表格列宽度调整的工作原理