python 发送邮件脚本

一、该脚本适合在 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 = "[email protected]"    # 发件账号
_pwd  = ""                # 密码
_to   = sys.argv[1]        # 发送人
_cc   = sys.argv[4]        # 转呈人

if _cc.strip()==‘1‘:
    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("[email protected]", 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

时间: 2024-11-11 19:58:30

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

postfix python发送邮件脚本配置

一.环境说明 我们通常需要发送邮件,用于报警,或邮件验证等需求,本次的环境要求如下: CentOS 6.x   最小化安装,安装postfix(一般系统安装好自带的邮件系统),如果没有请如下操作: #yum install postfix -y python 2.6+ 二.postfix简介 postfix是linux平台邮件系统,默认安装,并且自动开机运行,无需过多的配置,但有一点需要说明,postfix所 在主机绑定了备案域名则默认不会当作垃圾邮件,而所在主机没有绑定备案域名,大多邮件厂商会

python发送邮件脚本

尝试了好多遍都不能成功,然后找到这个可以成功发送! #!/usr/bin/python#coding:utf-8 import smtplib from email.mime.text import MIMETextfrom email.utils import formataddrmy_sender='  ' my_user=' ' def mail(): ret=True try: msg=MIMEText('填写邮件内容','plain','utf-8') msg['From']=form

python发送邮件的脚本

python发送邮件的脚本,带有邮件内容与附件,邮件内容为串格式,附件为文件.如果想把某个目录下的所有文件当作附件发送,那请去掉注释. 代码如下: #!/usr/bin/python #coding utf-8 from email.MIMEText import MIMEText from email.MIMEMultipart import MIMEMultipart from email.MIMEBase import MIMEBase from email import Utils, E

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

Zabbix调用外部脚本发送邮件的时候,会在命令行传入两个参数,第一个参数就是要发送给哪个邮箱地址,第二个参数就是邮件信息,为了保证可以传入多个参数,所以假设有多个参数传入 #!/usr/bin/env python #encoding:utf8 # # Zabbix Server 发送邮件脚本 # from email import encoders from email.header import Header from email.mime.text import MIMEText fro

python 发送邮件例子

想到用python发送邮件 主要是服务器 有时候会产生coredump文件  ,然后因为脚本重启原因,服务器coredump产生后会重启 但是没有主动通知开发人员 想了下可以写个脚本一旦产生coredump文件就可以发送邮件给开发者让其立马知道 下面只介绍简单的发送脚本 如果需要在生产环境用起来  还需要按要求修改脚本 smtplib.SMTP([host[, port[, local_hostname[, timeout]]]]) SMTP类构造函数,表示与SMTP服务器之间的连接,通过这个连

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

Python发送邮件(常见四种邮件内容) 转载 2017年03月03日 17:17:04 转自:http://lizhenliang.blog.51cto.com/7876557/1875330 在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下,Shell脚本发送邮件告警是件很简单的事,有现成的邮件服务软件或者调用运营商邮箱服务器. 对于Python来说,需要编写脚本调用邮件服务器来发送邮件,使用的协议是SMTP.

python调用脚本或shell的方式

python调用脚本或shell有下面三种方式: os.system()特点:(1)可以调用脚本.(2)可以判断是否正确执行.(3)满足不了标准输出 && 错误 commands模块特点:(1). commands.getstatusoutput(cmd)用os.popen()执行命令cmd, 然后返回两个元素的元组(status, result). cmd执行的方式是{ cmd ; } 2&get;&1, 这样返回结果里面就会包含标准输出和标准错误.(2). comman

【转载】python发送邮件实例

本文转自:http://www.cnblogs.com/lonelycatcher/archive/2012/02/09/2343463.html 这几天要用python发送邮件,上网找到这篇文章感觉蛮全面的,故转载收藏之. 1. 文件形式的邮件 #!/usr/bin/env python3 #coding: utf-8 import smtplib from email.mime.text import MIMEText from email.header import Header send

第一个Python爬虫脚本

今天看了一下买来的C#项目书,感觉有点不可理喻,简直就是作者用来圈钱的,视频敷衍了事,源代码莫名其妙...唉...不过今天还是学了新东西,是一个Python爬虫脚本,虽说也是云里雾里,但是也算一个小进步,千里之行始于足下么,下面就把代码给贴出来. import urllib.requestimport urllib.parseimport json content = input('please input what you want to translate : ') url = 'http: