一、该脚本适合在 linux 中做邮件发送测试用,只需要填写好 发送账号密码以及发送人即可,然后使用  python ./filename.py (当前目录下)即可。如果发送出错,会将错误详情抛出来。

#!/usr/bin/env python
# -*- coding: utf-8 -*- __author__ = 'Apollo' import time
import smtplib
from email.mime.text import MIMEText
_user = "" # 发送账号
_pwd = "" # 账号密码
_to = "" # 发送人 def send_email(content):
text = '[%s] Reporting:' % (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) try:
msg = MIMEText(content)
msg["Subject"] = text
msg["From"] = _user
msg["To"] = _to #s = smtplib.SMTP("smtp.dc.mydorma.com", timeout=30) # 使用 25 号端口(普通邮件发送)
s = smtplib.SMTP_SSL(host='smtp.qq.com', port=465) # 使用 465 号端口(SSL加密发送)
s.set_debuglevel(1)
s.login(_user, _pwd)
s.sendmail(_user, _to, msg.as_string())
s.quit()
except (smtplib.SMTPAuthenticationError,
smtplib.SMTPConnectError,
smtplib.SMTPDataError,
smtplib.SMTPException,
smtplib.SMTPHeloError,
smtplib.SMTPRecipientsRefused,
smtplib.SMTPResponseException,
smtplib.SMTPSenderRefused,
smtplib.SMTPServerDisconnected) as e:
print 'Warning: %s was caught while trying to send email.\nContent:%s\n' % (e.__class__.__name__, e.message) if __name__ == '__main__':
send_email("Prepare to work:") # 邮件内容

二、该脚本适合使用其它语言(例如PHP)外部执行改 python 脚本来实际发送电子邮件,需要填写好 发送账号和密码即可,其它的参数从 外部传进来,例如php这样调用:

exec("/data/programdir/filename.py $to $subject $content $cc",$out,$result)

$result == 0 则发送成功$result == 1 则发送失败

#!/usr/bin/env python
# -*- coding: utf-8 -*- __author__ = 'Apollo' import time
import smtplib
import sys # 使用外部传参,必须引入 sys 类库
from email.mime.text import MIMEText
_user = "xxxxx@xx.com" # 发件账号
_pwd = "" # 密码
_to = sys.argv[1] # 发送人
_cc = sys.argv[4] # 转呈人 if _cc.strip()=='':
rcpt = _to
else:
rcpt = [_to] + _cc.split(",") def send_email(content):
text = '[%s] Reporting:' % (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) try:
msg = MIMEText(content)
msg["Subject"] = sys.argv[2]
msg["From"] = _user
msg["To"] = _to
msg["Cc"] = _cc s = smtplib.SMTP("xxxx@xx.com", timeout=30)
#s = smtplib.SMTP_SSL(host='smtp.qq.com', port=465)
s.set_debuglevel(1)
#s.login(_user, _pwd) # 当不需要做身份认证的时候,可以屏蔽该行
s.sendmail(_user,rcpt, msg.as_string())
s.quit()
except (smtplib.SMTPAuthenticationError,
smtplib.SMTPConnectError,
smtplib.SMTPDataError,
smtplib.SMTPException,
smtplib.SMTPHeloError,
smtplib.SMTPRecipientsRefused,
smtplib.SMTPResponseException,
smtplib.SMTPSenderRefused,
smtplib.SMTPServerDisconnected) as e:
print 'Warning: %s was caught while trying to send email.\nContent:%s\n' % (e.__class__.__name__, e.message) if __name__ == '__main__':
send_email(sys.argv[3]) # 邮件内容

如有转载,请注明出处:http://www.cnblogs.com/chrdai/p/7791693.html

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

  1. Python发送邮件脚本

    import smtplib from email.mime.text import MIMEText mailserver = "smtp.163.com" username_s ...

  2. python发送邮件脚本ssl 465端口

    #coding:utf8 from smtplib import SMTP_SSL from email.header import Header from email.mime.text impor ...

  3. Zabbix调用外部脚本发送邮件:python编写脚本

    Zabbix调用外部脚本发送邮件的时候,会在命令行传入两个参数,第一个参数就是要发送给哪个邮箱地址,第二个参数就是邮件信息,为了保证可以传入多个参数,所以假设有多个参数传入 #!/usr/bin/en ...

  4. Zabbix日志监视的汇总报警(更新发送邮件脚本)

    Zabbix的用户一定会碰到这种情况: 日志报警一般设置的是multiple模式,有错误大量写入的时候,每写入一行就会触发一次action,导致出现大量的报警邮件. 特别是ora的报警,经常一出就是上 ...

  5. python 发送邮件例子

    想到用python发送邮件 主要是服务器 有时候会产生coredump文件  ,然后因为脚本重启原因,服务器coredump产生后会重启 但是没有主动通知开发人员 想了下可以写个脚本一旦产生cored ...

  6. 【转】【Python】Python发送邮件(常见四种邮件内容)

    在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下,Shell脚本发送邮件告警是件很简单的事,有现成的邮件服务软件或者调 ...

  7. Python发送邮件(最全)

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

  8. python接口自动化(三十二)--Python发送邮件(常见四种邮件内容)番外篇——上(详解)

    简介 本篇文章与前边没有多大关联,就是对前边有关发邮件的总结和梳理.在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下, ...

  9. Python发送邮件(常见四种邮件内容)

    Python发送邮件(常见四种邮件内容) 转载 2017年03月03日 17:17:04   转自:http://lizhenliang.blog.51cto.com/7876557/1875330 ...

随机推荐

  1. 整理一下odoo10在windows系统下部署的流程

    odoo10环境搭建 所需依赖: Python3.5 odoo10.0 Node.js PostgreSQL 9.5 PyCharm 专业版 1.首先先安装好Python3.5,并设置好环境变量 2. ...

  2. nginx转发

    1.下载nginx:官网(http://nginx.org)右侧下载,进入下载页,选在需要下载的版本 2.将压缩包解压到指定的目录下 (D:\Environments\nginx-1.8.0) 3.启 ...

  3. 【可视化】DataV接入ECharts图表库 可视化利器强强联手

    DataV接入ECharts图表库 可视化利器强强联手 摘要: 两个扛把子级产品的结合,而且文末有彩蛋. DataV 数据可视化是搭建每年天猫双十一作战大屏的幕后功臣,ECharts 是广受数据可视化 ...

  4. IntelliJ IDEA配置Tomcat 与安装Tomcat失败原因

    1.jdk中jre损坏,无法提供运行环境:重新下载jre安装并配置

  5. oracle 进阶之model子句

    本博客是自己在学习和工作途中的积累与总结,仅供自己参考,也欢迎大家转载,转载时请注明出处. http://www.cnblogs.com/king-xg/p/6692841.html 一,  mode ...

  6. wap页面缩放

    html{font-size: 100%;}.in-main{ min-width:320px; max-width:640px; margin:0 auto; font-size:14px; bac ...

  7. PHP对Url中的汉字进行编码和解码

    有的新手朋友们对于url编码解码这个概念,或许有点陌生.但是如果这么说,当我们在浏览各大网页时,可能发现有的url里有一些特殊符号比如#号,&号,_号或者汉字等等,那么为了符合url的规范,存 ...

  8. 性能测试十二:jmeter进阶之java请求参数化

    如项目中的ip.端口号之类的,都可以在此代码中定义 public Arguments getDefaultParameters() { // TODO Auto-generated method st ...

  9. Mac配置Node.js环境

    打开终端输入命令:(安装brew) ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/mast ...

  10. C# 读取WAV文件(详细)

    class WAVReader { #region RIFF WAVE Chunk private string Id; //文件标识 private double Size; //文件大小 priv ...