摘要:中模块模块使得处理邮件变得比较简单我这里参考网上小五义的一些代码,实现了一个简单的发送邮件例子,具体代码如下常量脚本邮件相关配置变量发送内容相关配置主脚本参考小五义
python_send_mail_example
python 中 email模块、smtplib模块 使得处理邮件变得比较简单.
我这里参考网上小五义的一些代码,实现了一个简单的发送邮件例子,具体代码如下 :
常量脚本 constant_mail.py#!/usr/bin/env python # _*_ coding: utf-8 _*_ ## date: 20160127 ## 邮件相关配置变量 mail_to_list = ["yourname01@x.com", "yourname02@x.com"] #mail_host = "smtp.exmail.qq.com:465" mail_host = "smtp.exmail.qq.com:25" mail_user = "yourname" mail_password = "yourpassword" mail_postfix = "x.com" mail_from = mail_user + " <" + mail_user + "@" + mail_postfix + ">" mail_user_address = "yourname@x.com" # 发送内容相关配置 subject = "default-email-subject" mail_type = "plain"主脚本 send_mail.py
import sys sys.path.append("./") import constant_mail import os, smtplib, mimetypes, base64 from email.mime.text import MIMEText ## about var mail_to_list = constant_mail.mail_to_list mail_host = constant_mail.mail_host mail_user = constant_mail.mail_user mail_user_address = constant_mail.mail_user_address mail_password = constant_mail.mail_password mail_postfix = constant_mail.mail_postfix mail_from = constant_mail.mail_from mail_subject = constant_mail.subject mail_type = constant_mail.mail_type def get_mail_to_list(mailto): to_list = mailto.split(",") for i in range(0, len(to_list)): to_list[i] = to_list[i].strip()+"@" + mail_postfix return to_list def send_mail(mail_to_list, subject, content, mail_type): me = mail_from message = MIMEText(content, _subtype=mail_type, _charset="utf-8") message["Subject"] = subject message["From"] = me message["To"] = ";".join(mail_to_list) try: server = smtplib.SMTP() server.connect(mail_host) server.login(mail_user_address, mail_password) server.sendmail(my_info, mail_to_list, message.as_string()) server.close() return True except Exception, e: print >> sys.stderr, "[ERROR]: %s" % str(e) sys.exit(-1) def main(): print len(sys.argv) if len(sys.argv) < 4 : print >> sys.stderr, "args count : " + str(len(sys.argv)) + " is error!" return mail_subject = sys.argv[1] content=sys.argv[2] mail_to_list = get_mail_to_list(sys.argv[3]) if send_mail(mail_to_list, mail_subject, content, mail_type): print >> sys.stdout, "[INFO] Email Auto Send Success!" else: print >> sys.stderr, "[ERROR] Email Auto Send Failure!" if __name__ == "__main__": main()
参考 : 小五义
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/37732.html
摘要:导入库导入数据集这一步的目的是将自变量和因变量拆成一个矩阵和一个向量。 数据预处理是机器学习中最基础也最麻烦的一部分内容在我们把精力扑倒各种算法的推导之前,最应该做的就是把数据预处理先搞定在之后的每个算法实现和案例练手过程中,这一步都必不可少同学们也不要嫌麻烦,动起手来吧基础比较好的同学也可以温故知新,再练习一下哈 闲言少叙,下面我们六步完成数据预处理其实我感觉这里少了一步:观察数据...
摘要:重塑计划一选择符元素选择符通配选择符,选择所有元素对象。选择符,以唯一标识符属性等于的对象作为选择符。选择具有属性且属性值为包含的字符串的元素。伪类选择符设置超链接在未被访问前的样式。仅用于规则匹配不含有选择符的元素。 CSS重塑计划(一):选择符 元素选择符 *通配选择符(Universal Selector),选择所有元素对象。E类型选择符(Type Selector),以文档语言...
摘要:链表链表是最基础的动态数据结构链表是非常重要的线性数据结构以下三种,底层都是依托静态数组,靠解决固定容量问题。要清楚什么时候使用数组这样的静态数据结构,什么时候使用链表这类的动态数据结构。 showImg(https://segmentfault.com/img/remote/1460000018597053?w=1832&h=9943); 前言 【从蛋壳到满天飞】JAVA 数据结构解...
阅读 2234·2021-11-16 11:44
阅读 641·2019-08-30 15:55
阅读 3271·2019-08-30 15:52
阅读 3595·2019-08-30 15:43
阅读 2196·2019-08-30 11:21
阅读 435·2019-08-29 12:18
阅读 1945·2019-08-26 18:15
阅读 468·2019-08-26 10:32