最近写的检查redis配置的脚本中需要增加一个发送邮件的功能,于是现学现用了python的邮件发送模块smtplib.可以参考《Python for Unix and Linux Administrator》一书

#/usr/bin/pythonimport smtplib                                #导入smtplib模块mail_server='smtp.exmail.qq.com'              #定义发送有邮件服务器的地址和端口
mail_server_port=25from_addr='test@qq.com'                       #定义发送方和接收方地址
to_addr='abc123@qq.com'from_header='From: %s\r\n' % from_addr
to_header='To: %s\r\n\r\n' % to_addr
subject_header='Subject: nothint intersting'body='This is a not-very-interesting email.'email_message='%s\n%s\n%s\n\n%s' % (from_header,to_header,subject_header,body)s=smtplib.SMTP(mail_server,mail_server_port)    #连接邮件服务器
#s.set_debuglevel(1)                            #开启debug
s.login("test@qq.com","12345")                  #登录邮件服务器
#s.starttls()
s.sendmail(from_addr,to_addr,email_message)     #发送邮件
s.quit()

显示的结果为:

从上面可以看出以上代码发出的邮件不是我们想要的格式,邮件主题和收件人显示的位置有问题。改成以下的代码

#/usr/bin/pythonimport smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
#这两个模块可以格式化邮件内容mail_server='smtp.exmail.qq.com'
mail_server_port=25mail_user='test@qq.com'
mail_password='12345'from_addr='test@qq.com'
to_addr='abc123@qq.com'
subject_header='Subject: nothint intersting'body='This is a not-very-interesting email.'m=MIMEMultipart()                      #格式化邮件内容
m["To"]=to_addr
m["From"]=from_addr
m["Subject"]=subject_header
m.attach(MIMEText(body))s=smtplib.SMTP(mail_server,mail_server_port)
s.set_debuglevel(1)
s.login(mail_user,mail_password)
#s.starttls()
s.sendmail(from_addr,to_addr,m.as_string())
s.quit()

显示结果如下:

现在邮件就能正常显示收件人和主题了。

转载于:https://blog.51cto.com/john88wang/1424411

Python学习之使用Python发送邮件相关推荐

  1. python学习一(python与pip工具下载与安装)

    python学习一(python与pip工具下载与安装)  一 Python下载  二 安装Python  三 安装 pip   3.1 采用cd命令进入到Scripts 目录下面   3.2 输入命 ...

  2. Python学习教程(Python学习视频_Python学些路线):Day05 总结和练习

    Python学习教程(Python学习视频_Python学些路线):总结和练习 练习清单 寻找"水仙花数". 寻找"完美数". "百钱百鸡" ...

  3. Python学习教程(Python学习路线):Python面试100题(二)

    Python学习教程(Python学习路线):面试题接着给大家整理! 16.<div class="nam">中国</div>,用正则匹配出标签里面的内容( ...

  4. Python学习之解决python下载第三方依赖速度慢的问题

    Python学习之解决python下载第三方依赖速度慢的问题 参考文章: (1)Python学习之解决python下载第三方依赖速度慢的问题 (2)https://www.cnblogs.com/su ...

  5. Python学习教程:Python爬虫抓取技术的门道

    Python学习教程:Python爬虫抓取技术的门道 web是一个开放的平台,这也奠定了web从90年代初诞生直至今日将近30年来蓬勃的发展.然而,正所谓成也萧何败也萧何,开放的特性.搜索引擎以及简单 ...

  6. Python学习教程(Python学习路线):Python3之递归函数简单示例

    Python学习教程(Python学习路线):Python3之递归函数简单示例 概述 递归函数即直接或间接调用自身的函数,且递归过程中必须有一个明确的递归结束条件,称为递归出口.递归极其强大一点就是能 ...

  7. Python学习教程(Python学习路线):Day08-面向对象编程基础

    Python学习教程(Python学习路线):面向对象编程基础 活在当下的程序员应该都听过"面向对象编程"一词,也经常有人问能不能用一句话解释下什么是"面向对象编程&qu ...

  8. Python学习教程(Python学习路线):第12天—正则表达式

    Python学习教程(Python学习路线):正则表达式相关知识 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要,正则表达式就是用于描述这些规则的工具,换句话说正则表达式是 ...

  9. Python学习教程:Python增强赋值及共享引用注意事项

    Python学习教程:Python增强赋值及共享引用注意事项 概述 Python中的增强赋值是从C语言中借鉴出来的,所以这些格式的用法大多和C一致,本身就是对表达式的简写,即二元表达式和赋值语句的结合 ...

  10. Python学习教程(Python学习路线):Day13-进程和线程

    Python学习教程(Python学习路线):进程和线程 今天我们使用的计算机早已进入多CPU或多核时代,而我们使用的操作系统都是支持"多任务"的操作系统,这使得我们可以同时运行多 ...

最新文章

  1. Apache启用mod_expires模块
  2. 七夕要到了,用Python比心表白
  3. jlink的SWD与JTAG下载模式的对应接线方法
  4. modelandview跳转页面404_Thinkphp制作404跳转页
  5. Docker 基础介绍及配置安装 [一]
  6. 基于matlab实现的BP神经网络预测美国死亡人数
  7. 迭代收缩阈值算法matlab,一种基于自适应快速迭代收缩阈值算法的图像处理方法与流程...
  8. 共模干扰以及共模干扰消除方法
  9. 诗歌(8)—梅花二首(其二)
  10. 【Unity】预计算刚体运动轨迹
  11. php nette,php – Nette Framework – 自定义属性宏
  12. 漫画|微信群聊的程序员们
  13. 计算机技术基础概念,2017年计算机三级网络技术基本概念与名词解释:计算机基础知识部分...
  14. 如何在linux上开发安卓软件,使用Xamarin在Visual Studio中开发Android应用
  15. 动手撸一个金馆长表情库——爬虫及异步请求
  16. 论文 Through Fog High Resolution Imaging Using Millimeter Wave Radar 复现
  17. 智慧环保综合解决方案 大数据打造生态治理系统平台
  18. 用HJ6302模块进行S7-200Smart与G120XA系列变频器进行通讯
  19. mysql错误代码对照表较完整 mysql_errno()
  20. 重庆软件测试培训学校学费,重庆软件测试培训费用多少

热门文章

  1. Js让光标停在输入框input框最后面
  2. Ubuntu技巧之xxx is not in the sudoers file解决方法
  3. cocos2D创建一组单选按钮菜单
  4. 分享两条关于Eclipse Perl插件EPIC的tips吧~
  5. 《『若水新闻』客户端开发教程》——04.设计新闻分类UI(2)
  6. Android FrameWork——Activity启动过程详解
  7. 如何计算java对象占用的内存
  8. 路由器和iP地址的那些事
  9. ES 6理解 let
  10. Deploy sahara on openstack-icehouse