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. Win7 + Ubuntu 14.04 +tomcat + mysql 搭建测试环境手册

    一.Win7下做安装ubuntu 下载ununtu14.04和EasyBCD软件 Win7下要腾出一个盘来安装ubuntu.我是格式化掉F盘,然后回到桌面,右键点击计算机-->管理-->存 ...

  2. 043、Java中逻辑运算之实现位与操作

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  3. mysql 索引入门

    创建索引的语法结构:

  4. 01 DDL(DataDefinitionLanguage)

    注: 语句用 ; 或 \g \G 表示结束 .       建库语句 :         CREATE DATABASE db_name ;          查询有哪些库 :         SHO ...

  5. MongoDB_02简介

    MongoDB简介 MongoDB是一个开源,高性能,无模式的文档型数据库. 它支持的数据结构非常松散,是一种类似于JSON的格式叫BSON,所以他既可以存储比较复杂的数据类型,又相当的灵活. Mon ...

  6. Js获取页面地址参数

    var url = window.location.href; //获取当前窗口的Url; 结果:http://localhost:61768/Home/Index?id=2&age=18 v ...

  7. 剑指offer自学系列(二)

    题目描述: 在一个长度为n的数组里的所有数字都在0到n-1的范围内,数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次,请找出数组中任一个重复的数字,例如,如果输入长度为7的 ...

  8. java 三羊献瑞

    三羊献瑞 观察下面的加法算式: 其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字. 请你填写"三羊献瑞"所代表的4位数字(答案唯一),不要填写任何多余内容. public ...

  9. 小技巧:使用命令行打开vscode 以及 sublime 工具

    vscode手动打开vscode command + shift + p 打开命令面板(或者点击菜单栏 查看>命令面板)输入 shell 选择 install code command in P ...

  10. Java8集合框架——HashSet源码分析

    本文的目录结构: 一.HashSet 的 Javadoc 文档注释和简要说明 二.HashSet 的内部实现:内部属性和构造函数 三.HashSet 的 add 操作和扩容 四.HashSet 的 r ...