一、该脚本适合在 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. Bootstrap3.0学习第一轮(入门)

    详情请查看 http://aehyok.com/Blog/Detail/7.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:ht ...

  2. centos系统初始化脚本

    #!/bin/bash #检测是否为root用户 ];then echo "Must be root can do this." exit fi #检测网络 echo " ...

  3. 测试开发之Django——No6.Django模板中的标签语言

    模板中的标签语言 1.if/else {% if  %} 标签检查(evaluate)一个变量,如果这个变量为真(即:变量存在,非空,不是布尔值假),系统会显示在{% if  %} 和 {% endi ...

  4. linux之nginx

    一.知识点回顾 临时:关闭当前正在运行的 /etc/init.d/iptables stop 永久:关闭开机自启动 chkonfig iptables off ll /var/log/secure # ...

  5. C++ code:指针类型(pointer types)

    #include <iostream> using namespace std; int main() { float f = 34.5; int *ip = reinterpret_ca ...

  6. 神经网络,前向传播FP和反向传播BP

    1 神经网络 神经网络就是将许多个单一“神经元”联结在一起,这样,一个“神经元”的输出就可以是另一个“神经元”的输入.例如,下图就是一个简单的神经网络: 我们使用圆圈来表示神经网络的输入,标上“”的圆 ...

  7. this和判断的位置对赋值的要求

    package charter01; public class Person { private String name; private int age; public String getName ...

  8. 在vs2008工程中制作cab包

    内容转自MSDN 1.首先,制作自己的智能设备工程 2.添加cab工程: 为解决方案添加智能设备 CAB 项目 打开现有的智能设备项目,并确保“解决方案资源管理器”可见. 在“文件”菜单上指向“添加” ...

  9. 【Java】 剑指offer(24) 反转链表

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头 ...

  10. 017 Spark的运行模式(yarn模式)

    1.关于mapreduce on yarn 来提交job的流程 yarn=resourcemanager(RM)+nodemanager(NM) client向RM提交任务 RM向NM分配applic ...