1. 编写一个最简单的发邮件的python脚本

 
  1. #coding: utf-8
  2. import smtplib
  3. from email.mime.text import MIMEText
  4. from email.header import Header
  5. sender = '929135087@qq.com'       #发件人账号
  6. receiver = '929135087@qq.com'     #收件人,以列表的形式支持多个收件人,例:['收件人1','收件人2']
  7. subject = 'python email test'    #标题
  8. smtpserver = 'smtp.qq.com'       #设置邮件服务器
  9. username = '929135087@qq.com'    #用户名
  10. password = '*********'           #授权口令
  11. msg = MIMEText( 'Hello Python', 'plain', 'utf-8' )         #'内容','格式','编码'
  12. msg['Subject'] = Header( subject, 'utf-8' )                
  13. msg['From'] = Header( '小鱼', 'utf-8' )                    #发件人
  14. try:
  15.     #smtp = smtplib.SMTP()
  16. smtp = smtplib.SMTP_SSL('smtp.qq.com:465')    #使用465端口,默认25端口
  17.     smtp.connect( smtpserver )
  18.     smtp.login( username, password )
  19.     smtp.sendmail( sender, receiver, msg.as_string() )  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
  20. print("邮件发送成功")
  21.     smtp.quit()
  22. except smtplib.SMTPException:
  23. print("Error: 无法发送邮件")
 

2. 运行结果

如果在上述代码usernamepassword,变量中填写邮箱的帐号密码那么会看到以下报错:

 
  1. Traceback (most recent call last):
  2. File "mail.py", line 18, in <module>
  3. smtp.login( username, password )
  4. File "/usr/lib64/python2.6/smtplib.py", line 589, in login
  5. raise SMTPAuthenticationError(code, resp)
  6. smtplib.SMTPAuthenticationError: (535, 'Error: authentication failed')
 

3. 解决方法

调用163邮箱或qq邮箱服务器来发送邮件,我们需要开启POP3/SMTP服务,这时163邮件或QQ邮箱会让我们设置客户端授权码,这个授权码替代上面代码部分的password即可成功发送邮件

发邮件的python脚本的更多相关文章

  1. Zabbix3.2邮件告警python脚本

    一.概述及环境要求 1.概述 zabbix监控也起到重要作用,以下是使用python脚本发送告警邮件配置方法.之前使用过sendemail邮件报警但是发现邮件主题为中文时候会出现乱码的问题. 2.环境 ...

  2. zabbix增加手机短信、邮件监控的注意要点,SSL邮件发送python脚本

    1.短信接口文档: URL http://xxx.com/interfaces/sendMsg.htm Method POST Description 文字短信调用接口 Request Param L ...

  3. Python发邮件的小脚本

    # -*- coding: UTF-8 -*- import smtplib from email.mime.text import MIMEText mailto_list = ['hitwh_Gy ...

  4. 检测MYSQL不同步发邮件通知的脚本

    脚本代码如下:#!/bin/bash                                                                                   ...

  5. 使用python脚本配置zabbix发送报警邮件

    #前提得在zabbix_server配置文件中配置触发脚本的目录,例如,我配置的在/usr/local/zabbix/server/scripts目录下 编写python脚本如下 因为我的服务器在腾讯 ...

  6. 【Python系列】Python自动发邮件脚本-html邮件内容

    缘起 这段时间给朋友搞了个群发邮件的脚本,为了防止进入垃圾邮件,做了很多工作,刚搞完,垃圾邮件进入率50%,觉得还不错,如果要将垃圾邮件的进入率再调低,估计就要花钱买主机了,想想也就算了,先发一个月, ...

  7. 【Python系列】Python自动发邮件脚本

    缘起 这段时间给朋友搞了个群发邮件的脚本,为了防止进入垃圾邮件,做了很多工作,刚搞完,垃圾邮件进入率50%,觉得还不错,如果要将垃圾邮件的进入率再调低,估计就要花钱买主机了,想想也就算了,先发一个月, ...

  8. Python 实现网页截屏、查库、发邮件

    本文介绍了使用 Python(2.7版本)实现网页截屏.查库.发邮件的 demo.用到了 selenium.phantomjs.mailer.jinja2.mysqldb 还有 image,都是比较典 ...

  9. 【Python】 发邮件用 smtplib & email

    smtplib & email ■ 概述 发邮件主要用到smtplib以及email模块.stmplib用于邮箱和服务器间的连接,发送的步骤.email模块主要用于处理编码,邮件内容等等.主要 ...

随机推荐

  1. 一款实现滑动切换效果的插件---swiper

    Swiper是纯javascript打造的滑动特效插件,面向手机.平板电脑等移动终端. Swiper能实现触屏焦点图.触屏Tab切换.触屏多图切换等常用效果. Swiper开源.免费.稳定.使用简单. ...

  2. Tomcat_总结_02_单机多实例

    一.tomcat下载及环境变量配置 1.tomcat下载 下载地址:tomcat官网 2.环境变量配置 只用配置一个CATALINA_HOME就可以了 二.CATALINA_HOME 与 CATALI ...

  3. MYSQL root密码修改找回命令

    方法1: 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass ...

  4. CH5103 [NOIP2008]传纸条[线性DP]

    给定一个 N*M 的矩阵A,每个格子中有一个整数.现在需要找到两条从左上角 (1,1) 到右下角 (N,M) 的路径,路径上的每一步只能向右或向下走.路径经过的格子中的数会被取走.两条路径不能经过同一 ...

  5. [JSOI 2015] 最大公约数

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4488 [算法] 不妨首先枚举左端点 注意到对于任意一个正整数n , 其质因子个数是l ...

  6. Mybatis新版实践

    配置文件节点顺序 MyBatis的configuration节点需要有顺序,首先是propertes然后是settings,environment... @Param注解参数 对于Mapper接口,如 ...

  7. bzoj 3157 & bzoj 3516 国王奇遇记 —— 推式子

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3157 https://www.lydsy.com/JudgeOnline/problem.p ...

  8. 测试你的浏览器是否支持WebGL(Does My Browser Support WebGL)

    测试你的浏览器是否支持WebGL(Does My Browser Support WebGL) 关于WebGL:WebGL是一种3D绘图标准,这种绘图技术标准允许把JavaScript和OpenGL ...

  9. java--序列化及其算法透析

    有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍. Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述 ...

  10. ng2 中使用echart

    1.首先创建echarts指令 //echart.directive.ts important { Directive,ElementRef,Input,Ouput,Onchanges,OnInit, ...