Email 发送

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import base64
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.utils import formataddr def crypt(source, key):
from itertools import cycle
result=''
temp=cycle(key)
for ch in source:
result=result+chr(ord(ch)^ord(next(temp)))
return result sender = 'xxx@aliyun.com'
receivers = ['xxx@dingtalk.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱 # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
msg = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8')
# msg['From'] = Header("S", 'utf-8') # 发送者
# msg['To'] = Header("测试", 'utf-8') # 接收者
msg['From'] = formataddr(["data_deal", sender]) # 发送者
msg['To'] = formataddr(["recv", receivers[0]]) # 接收者 subject = 'Python SMTP 邮件测试' def sendMail(subject, key):
error_msg = None
try:
msg['Subject'] = Header(subject, 'utf-8')
# clint = smtplib.SMTP()
# EMAIL_HOST, EMAIL_PORT = "smtpdm.aliyun.com", 465
# clint.connect(EMAIL_HOST, EMAIL_PORT)
EMAIL_HOST, EMAIL_PORT = "smtp.aliyun.com", 465
clint = smtplib.SMTP_SSL(EMAIL_HOST, EMAIL_PORT)
clint.login(sender, crypt('xxx', key))
clint.sendmail(sender, receivers, msg.as_string())
clint.quit()
print("邮件发送成功")
except smtplib.SMTPConnectError as e:
error_msg= '邮件发送失败,连接失败'
except smtplib.SMTPAuthenticationError as e:
error_msg = '邮件发送失败,认证错误:'
except smtplib.SMTPSenderRefused as e:
error_msg = '邮件发送失败,发件人被拒绝:'
except smtplib.SMTPRecipientsRefused as e:
error_msg = '邮件发送失败,收件人被拒绝:'
except smtplib.SMTPDataError as e:
error_msg = '邮件发送失败,数据接收拒绝:'
except smtplib.SMTPException as e:
error_msg = '邮件发送失败, {}'.format(str(e))
except Exception as e:
error_msg = '邮件发送异常, {}'.format(str(e))
if error_msg != None:
print("Error: 无法发送邮件")
print(error_msg) # sendMail('ttttt', '123')

Python Email发送,通知业务完成的更多相关文章

  1. python email ==> send 发送邮件 :) [smtplib, email 模块]

    关于Email的预备知识: 原贴地址:http://www.cnblogs.com/lonelycatcher/archive/2012/02/09/2343480.html ############ ...

  2. centos 7 keepalived故障邮件通知实战(附Python邮件发送脚本)

    centos 7 keepalived故障邮件通知实战(附Python邮件发送脚本) #####################     sendmail.py  begin     ######## ...

  3. python selenium2示例 - email发送

    前言 在进行日常的自动化测试实践中,我们总是需要将测试过程中的记录.结果等等等相关信息通过自动的手段发送给相关人员.python的smtplib.email模块为我们提供了很好的email发送等功能的 ...

  4. 配置 SQL Server Email 发送以及 Job 的 Notification通知功能

    配置 SQL Server Email 发送以及 Job 的 Notification通知功能 在与数据库相关的项目中, 比如像数据库维护, 性能警报, 程序出错警报或通知都会使用到在 SQL Ser ...

  5. 教你如何用Python向手机发送通知

    ------------恢复内容开始------------ 你曾想尝试在服务器端或电脑上向手机发送通知吗? 你曾烦恼过企业邮箱的防骚扰机制吗? 现在,我们可以用一种简单轻松的方法来代替企业邮箱了! ...

  6. Django使用Signals监测model字段变化发送通知

    上一篇文章<运维效率之数据迁移自动化>中讲到了工单通知,本文将介绍工单通知实现过程中的一些小技巧.所有演示均基于Django2.0 阅读此篇文章你可以: 解锁一个python if的使用新 ...

  7. 【原创】Talend ETL开发——基于joblet的统一的email发送

    更新 2019/1/16:增加了允许5个附件发送.smtp等配置的字段. 一.背景 在ETL数据整合过程中,肯定会涉及到email的通知,比如ETL的执行情况汇报,执行耗时汇报,关键数据更新情况等信息 ...

  8. Elastic:使用ElastAlert发送通知

    ElastAlert是一个简单的框架,用于从Elasticsearch中的数据中发出异常,尖峰或其他感兴趣模式的警报.我们可以在地址https://elastalert.readthedocs.io/ ...

  9. NodeJs之邮件(email)发送

    NodeJs之邮件(email)发送 一,介绍与需求 1.1,介绍 1,Nodemailer简介 Nodemailer是一个简单易用的Node.js邮件发送插件 github地址 Nodemailer ...

随机推荐

  1. vld扩展

    PHP代码的执行实际上是在执行代码解析后的各种opcode.通过vld扩展可以很方便地看到执行过程中的opcode. 一.安装vld扩展 git clone https://github.com/de ...

  2. P1077 互评成绩计算

    P1077 互评成绩计算 转跳点:

  3. jmeter里面Dug Sampler 和json提取器的用法

    1.编写用户详情请求 2.查看结果树 一级一级往上查找父集 3.添加json提取器 步骤:点击[用户详情]请求->添加->后置处理器->json提取器 把查看结果树里面的JSON P ...

  4. Java 定时循环运行程序

    Timer 和 ScheduledExecutorSeruvce 都能执行定时的循环任务,有函数 scheduleAtFixedRate.但是,如果任务运行时间较长,超过了一个周期时长,下一个任务就会 ...

  5. emacs 配置文件目录

    在 windows 环境下,emacs 的配置目录可以通过下面几种方式来设置: If the environment variableHOME is set, use the directory it ...

  6. Netty简单认识

    简介 Netty 是由JBOSS提供的一个 Java开源框架, 现在是 Github上的开源项目 Netty 是一个异步的.基于事件驱动的网络应用框架式, 用以快速开发高性能.高可靠性的网路IO程序 ...

  7. Vuex源码分析(转)

    当我们用vue在开发的过程中,经常会遇到以下问题 多个vue组件共享状态 Vue组件间的通讯 在项目不复杂的时候,我们会利用全局事件bus的方式解决,但随着复杂度的提升,用这种方式将会使得代码难以维护 ...

  8. B. Yet Another Crosses Problem

    B. Yet Another Crosses Problem time limit per test 2 seconds memory limit per test 256 megabytes inp ...

  9. 06 MySQL运算符

    算数运算符     +    -    *    /    DIV    %    MOD   比较运算符     =    <>    !=    <=>(安全等于,NULL ...

  10. HihoCoder第十三周:最近公共祖先 一

    #1062 : 最近公共祖先·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 同城那样神奇,但这个网站仍然让小Ho乐在其中,但这是为什么呢? "为什么呢?& ...