用Python自动发送邮件

    最近需要在服务器上处理一些耗时比较长的任务,因此想到利用python写一个自动发送邮件的脚本,在任务执行完毕后发送邮件通知我。以下代码以163邮箱为例:

开通163邮箱的smtp协议

    设置->POP3/SMTP/IMAP,开启服务,设置好授权码(使用smtp服务时需要用到)。

![](http://images2015.cnblogs.com/blog/1124275/201703/1124275-20170313224639041-1369192755.png)
## python代码
email_sender.py

# -*- coding: utf-8 -*-
import smtplib
import time, sys
from email.mime.text import MIMEText # 任务名称
task_name = sys.argv[1]
# 任务完成时间
t_st = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) # 第三方 SMTP 服务
mail_host = "smtp.163.com" # SMTP服务器
mail_user = "robot_******@163.com" # 用户名
mail_pass = "******" # 授权码,不是邮箱的登陆密码 sender = 'robot_****@163.com' # 发件人
receivers = ['13******@qq.com'] # 收件人,可以是多个人 # 邮件正文
content = '任务{0}的处理载完毕!!!!!!!!!!!!!!!!!!!!!!!!'.format(task_name)
title = '{0}已经完成,{1}'.format(task_name, t_st) # 邮件标题
message = MIMEText(content, 'plain', 'utf-8') # 内容, 格式, 编码 # 此处的发件人、收件人分别要和sender,receivers一致,否则会被163邮箱系统当作垃圾邮件
message['From'] = "{0}".format(sender)
message['To'] = ",".join(receivers)
message['Subject'] = title try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, '25') # 连接服务器
smtpObj.login(mail_user, mail_pass) # 登录验证
smtpObj.sendmail(sender, receivers, message.as_string()) # 发送
smtpObj.quit()
print " success !!!"
except smtplib.SMTPException as e:
print e

结果

    在终端中执行命令:python ./email_sender.py test_task.

![](http://images2015.cnblogs.com/blog/1124275/201703/1124275-20170313224658135-1873834596.png)

    QQ邮箱收到的邮件如下(如果收件箱中没有,请查看下垃圾箱):

![](http://images2015.cnblogs.com/blog/1124275/201703/1124275-20170313224717354-1773611036.png)

用Python自动发送邮件的更多相关文章

  1. python☞自动发送邮件

    一.SMTP 协议 SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式 二.smtplib ...

  2. 【Python】利用python自动发送邮件

    前言 在训练网络的过程中,需要大量的时间,虽然可以预估网络训练完成时间,但蹲点看结果着实有点不太聪明的亚子. 因此,参照师兄之前发的python利用smtp自动发邮件的代码,我作了些调整,并参照网上的 ...

  3. Appium+python 自动发送邮件(1)(转)

    (原文:https://www.cnblogs.com/fancy0158/p/10056091.html) SMTP:简单传输协议,实在Internet上传输Email的事实标准. Python的s ...

  4. 利用Python自动发送邮件

    # -*- coding:utf-8 -*-from email.mime.text import MIMETextfrom email.header import Headerimport smtp ...

  5. python 自动发送邮件遇到的问题

    在学习自动化测试高级应用,根据内容写关于自动发送邮件出现了几个问题以及解决办法: 问题1: 代码写好之后,运行的时候,出现如下报错: SMTPAuthenticationError: (550, '\ ...

  6. Python 自动发送邮件

    简单邮件传输协议(SMTP)是一种协议,用于在邮件服务器之间发送电子邮件和路由电子邮件.Python提供smtplib模块,该模块定义了一个SMTP客户端会话对象,可用于使用SMTP或ESMTP侦听器 ...

  7. python自动发送邮件

    Python 的 smtplib 模块提供了发送电子邮件的功能.测试报告出来后,然后就把报告发送到邮箱. 一.先来看简单的列子 使用QQ邮箱发送邮件,使用的是授权码,需要先到QQ邮箱申请授权码. 邮箱 ...

  8. Python自动发送邮件(可带附件)

    Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件 ...

  9. Python自动发送邮件-smtplib和email库

    ''' 一.先导入smtplib模块 导入MIMEText库用来做纯文本的邮件模板 二.发邮件几个相关的参数,每个邮箱的发件服务器不一样,以163为例子百度搜索服务器是 smtp.163.com 三. ...

随机推荐

  1. mysql查看当前执行线程_关闭当前的某些线程 show processlist_kill

    每个与mysqld的连接都在一个独立的线程里运行,您可以使用SHOW PROCESSLIST语句查看哪些线程正在运行,并使用KILL thread_id语句终止一个线程. 如果您拥有SUPER权限,您 ...

  2. 利用tcp三次握手,使用awl伪装MAC地址进行多线程SYN洪水攻击

    SYN洪水攻击概述:SYN洪水攻击主要源于: tcp协议的三次握手机制tcp协议面向链接的协议SYN洪水攻击的过程:在服务端返回一个确认的SYN-ACK包的时候有个潜在的弊端,如果发起的客户是一个不存 ...

  3. 3D打印机如何添加自动调平功能

    原理说明 Kossel/Rostock等Delta(并联/三角洲)类型的机器,可以参考:http://learn.makerlab.me/guides/11 3d打印打印时最重要的是第一层的效果,如果 ...

  4. 20155228 2017-11-19 实现mypwd(选做,加分)

    20155228 2017-11-19 实现mypwd(选做,加分) 题目和要求 学习pwd命令 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 实现mypwd 测试mypwd ...

  5. 【Spark-core学习之七】 Spark广播变量、累加器

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...

  6. liunx 常用命令学习笔记

    通过linux 命令pwd:显示当前所在的目录ls:显示当前目录下的文件cd:切换路径 cd..返回上一级路径mkdir:新建目录rmdir:删除目录 touch:新建文件rm:删除文件 gedit: ...

  7. springboot之jar包部署步骤

    eclipse中: 1.单击整个项目 run as - maven clean - maven install 2.找到项目所在的路径 找到所有的jar包 3.把jar包放到linux对应的文件夹 l ...

  8. 用javaScript获取页面元素值

    用JavaScript获取页面元素常见的三种方法:                                                           getElementById() ...

  9. Linux(5.5版为主)的基本操作命令

    mount  查看挂载目录 cat  ~       查看文件下的内容 touch ~       创建一个文件 一次性性创建几个文件:  touch  /tmp/{1,2,3,4}.txt     ...

  10. python传参是传值还是传引用

    在此之前先来看看变量和对象的关系:Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是对象.而变量是对象的一个引用(又称为名字或者标签),对象的操作都是通过引用来完成的.例 ...