python3 邮件,多用户,抄送
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017/8/19 10:44
# @Author : Lys
# @Site :
# @File : mail.py
# @Software: PyCharm Community Edition import sys
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication class Mailer(object):
def __init__(self, maillist,mailcclist, mailtitle, mailcontent):
self.mail_list = maillist
self.mail_cc = mailcclist
self.mail_title = mailtitle
self.mail_content = mailcontent self.mail_host = "xxx.xxx.com" #邮件服务器地址
self.mail_user = "xxx@xxx.com" #USER
self.mail_pass = "xxxxx" #Password
#self.mail_postfix = "xxxxxx.com" def sendMail(self): me = self.mail_user + "<" + self.mail_user + "@" + ">"
msg = MIMEMultipart()
msg['Subject'] = 'Python mail Test'
msg['From'] = me
msg['To'] = ";".join(self.mail_list)
msg['Cc'] = ";".join(self.mail_cc)
#print("++++++++++++++",self.mail_cc)
# puretext = MIMEText('<h1>你好,<br/>'+self.mail_content+'</h1>','html','utf-8')
puretext = MIMEText('纯文本内容' + self.mail_content)
msg.attach(puretext) #txt类型格式
txtpart = MIMEApplication(open("E:\day_2\s1\hello.txt",'rb').read())
txtpart.add_header('Content-Disposition', 'attachment', filename='hello.txt')
msg.attach(txtpart) # jpg类型的附件
#jpgpart = MIMEApplication(open('/home/mypan/1949777163775279642.jpg', 'rb').read())
#jpgpart.add_header('Content-Disposition', 'attachment', filename='beauty.jpg')
#msg.attach(jpgpart) # 首先是xlsx类型的附件
# xlsxpart = MIMEApplication(open('test.xlsx', 'rb').read())
# xlsxpart.add_header('Content-Disposition', 'attachment', filename='test.xlsx')
# msg.attach(xlsxpart) # mp3类型的附件
# mp3part = MIMEApplication(open('kenny.mp3', 'rb').read())
# mp3part.add_header('Content-Disposition', 'attachment', filename='benny.mp3')
# msg.attach(mp3part) # pdf类型附件
# part = MIMEApplication(open('foo.pdf', 'rb').read())
# part.add_header('Content-Disposition', 'attachment', filename="foo.pdf")
# msg.attach(part) try:
s = smtplib.SMTP() # 创建邮件服务器对象
s.connect(self.mail_host) # 连接到指定的smtp服务器。参数分别表示smpt主机和端口
s.login(self.mail_user, self.mail_pass) # 登录到你邮箱
#print("-------",self.mail_list,self.mail_cc)
s.sendmail(me,self.mail_list + self.mail_cc,msg.as_string()) # 发送内容
s.close()
return True
except Exception as e:
print(str(e))
return False def main(mailto_list,mailcc_list):
mailto_list = mailto_list
mailcc_list = mailcc_list
mail_title = 'Hey subject'
mail_content = 'Hey this is content'
mm = Mailer(mailto_list, mailcc_list, mail_title, mail_content)
res = mm.sendMail()
print(res) #将消息类型转换为list
def processMsg(people_list):
mail_list = []
while True:
try:
get_mail_index = str(people_list).index(',')
get_first = (people_list[:get_mail_index])
mail_list.append(get_first)
people_list = people_list[get_mail_index+1:]
except ValueError:
mail_list.append(people_list)
break
return mail_list if __name__ == '__main__':
send_list = sys.argv[1]
cc_list = sys.argv[2]
mailto_list = []
mailcc_list = [] mailto_list = processMsg(send_list)
mailcc_list = processMsg(cc_list)
main(mailto_list,mailcc_list) #main(["xxx@xxx.com","xxx@xxx.com"], ['xxxx@qq.com',"xxx@xxx.com"])
python3 邮件,多用户,抄送的更多相关文章
- System.Net.Mail邮件发送抄送附件(多个)
/// <summary> /// 邮件发送抄送附件 /// </summary> /// <param name="mailTo">收件人(可 ...
- python3 邮件发送
这是搜罗网络上的文章总结的一份文档, 参考: https://www.jb51.net/article/140604.htm https://www.jb51.net/article/140604.h ...
- openerp 7.0邮件多用户发送失败问题 解决方法
方法一(推荐): 修改代码/usr/lib/pymodules/python2.7/openerp/addons/base/ir/ir_mail_server.py #425 line: #mail_ ...
- python3 邮件方式发送测试报告
以邮件方式发送测试报告 import smtplib from email.mime.text import MIMEText class SendEmail: """邮 ...
- Python3学习笔记29-发送邮件
email模块用来构造邮件,smtplib模块用来发送邮件. 以QQ邮箱为例 想要在代码中使用QQ邮箱发送邮件,需要先在QQ邮箱-设置-账户中,开启SMTP服务,然后生成授权码.在进行验证账号时,用生 ...
- .NET开发邮件发送功能的全面教程(含邮件组件源码)
今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知识 2) ...
- .NET开发邮件发送功能
.NET开发邮件发送功能 今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知 ...
- java邮件工具类【最终版】
http://www.xdemo.org/java-mail/ 对比链接中,添加了抄送和暗抄送功能(已解决,如图代码:抄送不能多个用户,会报错,未解之谜) sendHtmlmail方法可以发送附件以及 ...
- MIME协议(一) -- RFC822邮件格式
MIME协议(一) -- RFC822邮件格式 . 如同其他各种电子文档一样,电子邮件内容也必须遵循一定的格式要求,各种邮件处理程序才能从中分析和提取出发件人.收件人.主题和附件等信息.邮件内容的 ...
随机推荐
- PHP之string之addslashes()函数使用
addslashes (PHP 4, PHP 5, PHP 7) addslashes - Quote string with slashes addslashes - 使用反斜线引用字符串 Desc ...
- gcc对open(2)支持重载吗
在Linux中,如果man -s2 open, 我们看到两种不同的函数原型声明: $ man -s2 open NAME open, creat - open and possibly create ...
- 介绍Windows Azure HDInsight服务的Hadoop Storm的视频
介绍Windows Azure HDInsight服务的Hadoop Storm的原理,用例及开发入门的视频,收藏一下: http://channel9.msdn.com/Shows/Data-Exp ...
- 16G的U盘 4G的压缩
文件系统格式原因,或是你的U盘是扩容盘(就是实际容量和显示的不一样)常用文件系统支持的单个文件大小: FAT16 支持单个文件最大不超过2GB FAT32 支持单个文件最大不超过4GB(有人说实际超过 ...
- JQuery ajax-向服务器发送请求的方法
如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法: xmlhttp.open("GET","ajax_info ...
- Git——新手入门与上传项目到远程仓库GitHub
Git:先进的分布式版本控制系统,一个开源式的分布式版本控制工具. Git安装 在Windows操作系统下,访问Git下载地址https://git-for-windows.github.io/ 注册 ...
- DataGridView 绑定数据方法
DataGridView控件用于显示来自多种外部数据源中的数据,用户可以在此控件添加行和列,并可以填充数据. 如要让DataGridView显示数据库中的数据,只需要将此控件绑定到挑用数据库的数据 ...
- C++/CLI 本地字符串和托管字符串之间的转换
参考: https://docs.microsoft.com/zh-cn/cpp/dotnet/overview-of-marshaling-in-cpp #include "msclr/m ...
- sprintf 格式化字符串
好久没写博客了,又遇到自己觉得很傻的问题,格式化字符串还要找下 定义和用法 sprintf() 函数把格式化的字符串写入变量中. arg1.arg2.++ 参数将被插入到主字符串中的百分号(%)符号处 ...
- Android Studio下载/更新SDK
今天安装配置Android Studio的时候,用SDK Manager下载SDK的时候只显示了一个7.0,别的都刷新不出来(被墙了).去网上搜索怎么解决,发现很多帖子的方法已经过时了(跟现在的AS版 ...