#!/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 邮件,多用户,抄送的更多相关文章

  1. System.Net.Mail邮件发送抄送附件(多个)

    /// <summary> /// 邮件发送抄送附件 /// </summary> /// <param name="mailTo">收件人(可 ...

  2. python3 邮件发送

    这是搜罗网络上的文章总结的一份文档, 参考: https://www.jb51.net/article/140604.htm https://www.jb51.net/article/140604.h ...

  3. openerp 7.0邮件多用户发送失败问题 解决方法

    方法一(推荐): 修改代码/usr/lib/pymodules/python2.7/openerp/addons/base/ir/ir_mail_server.py #425 line: #mail_ ...

  4. python3 邮件方式发送测试报告

    以邮件方式发送测试报告 import smtplib from email.mime.text import MIMEText class SendEmail: """邮 ...

  5. Python3学习笔记29-发送邮件

    email模块用来构造邮件,smtplib模块用来发送邮件. 以QQ邮箱为例 想要在代码中使用QQ邮箱发送邮件,需要先在QQ邮箱-设置-账户中,开启SMTP服务,然后生成授权码.在进行验证账号时,用生 ...

  6. .NET开发邮件发送功能的全面教程(含邮件组件源码)

    今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知识 2)         ...

  7. .NET开发邮件发送功能

    .NET开发邮件发送功能 今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知 ...

  8. java邮件工具类【最终版】

    http://www.xdemo.org/java-mail/ 对比链接中,添加了抄送和暗抄送功能(已解决,如图代码:抄送不能多个用户,会报错,未解之谜) sendHtmlmail方法可以发送附件以及 ...

  9. MIME协议(一) -- RFC822邮件格式

    MIME协议(一) -- RFC822邮件格式 .   如同其他各种电子文档一样,电子邮件内容也必须遵循一定的格式要求,各种邮件处理程序才能从中分析和提取出发件人.收件人.主题和附件等信息.邮件内容的 ...

随机推荐

  1. PHP之string之ltrim()函数使用

    ltrim (PHP 4, PHP 5, PHP 7) ltrim - Strip whitespace (or other characters) from the beginning of a s ...

  2. C 扩展库 - mysql API general outline

    Application programs should use this general outline for interacting with MySQL Initialize the MySQL ...

  3. golang-开发配置

    环境变量配置 Windows GOROOT GOROOT = D:\ProgramDev\Go GOROOT GOROOT = D:\WorkSpace\goProjects GOBIN GOBIN ...

  4. nextval 遍历ResultSet,行列要从1开始

    nextval nextval与序列关联,表示下一个,如:创建里一个序列seq_1:#序列一般表示第几行,起标识作用create sequence seq_1 increment by 1 start ...

  5. html之内容解析

    首先我们知道了HTML和css用途,那么今天就来看看HTML的一部分功能和用途. 简单的说HTML就是灵活使用标签,标签就相当于一个网页的骨架,有了这个骨架才能使网页更能区域色彩化. 首先来说HTML ...

  6. Spring 学习(四)--- AOP

    问题 : AOP 解决的问题是什么 Spring AOP 的底层实现是什么 Spring AOP 和 AspectJ 的区别是什么 概述 在软件业,AOP为Aspect Oriented Progra ...

  7. 记Spring与跨域

    跨域 简单理解就是跨域名 (ip+端口) 在 52liming.com 中向demo.com中发起Ajax请求, 出于安全考虑会进行拦截 参考: 浏览器的同源策略 什么是JS跨域访问? 跨域资源共享 ...

  8. 面试遇到的mysql面试题

    1.MySQL数据库有哪些内置函数?1.数学函数 2.字符串函数 3.日期和时间函数 4.条件判断函数5.系统信息函数 6.加密和压缩函数 7.聚合函数8.格式或类型转化函数. 2.如何返回一张表的数 ...

  9. bash shell学习笔记(一)—— 常用命令

    一.基本的bash shell命令 1.默认bash shell 提示符是美元符号($); 2.bash手册 使用man命令来访问存储在Linux系统上的手册页面,如: bogon:~ Mac$ ma ...

  10. 解决 客户端连接 mysql5.7 Plugin 'mysql_native_plugin' is not loaded错误

    进入mysql数据库,修改数据库的内容  1, use mysql; 2,update user set authentication_string=""  where User= ...