#!/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. 浅谈内存映射I/O(MMIO)与端口映射I/O(PMIO)的区别

    最近在看NVMeDirect和SPDK的源码,觉得有必要梳理一下MMIO和PMIO的区别.关于MMIO和PMIO,维基百科上是这么讲滴, Memory-mapped I/O (MMIO) and po ...

  2. 《Think Python》第15章学习笔记

    目录 <Think Python>第15章学习笔记 15.1 程序员定义的类型(Programmer-defined types) 15.2 属性(Attributes) 15.3 矩形( ...

  3. (最全)Xpath、Beautiful Soup、Pyquery三种解析库解析html 功能概括

    一.Xpath 解析   xpath:是一种在XMl.html文档中查找信息的语言,利用了lxml库对HTML解析获取数据. Xpath常用规则: nodename :选取此节点的所有子节点 // : ...

  4. 使用Redis SETNX 命令实现分布式锁(转载)

    使用Redis的 SETNX 命令可以实现分布式锁,下文介绍其实现方法. SETNX命令简介 命令格式 SETNX key value 将 key 的值设为 value,当且仅当 key 不存在. 若 ...

  5. C# 核心语法-反射(反射类型、方法、构造函数、属性,实现可配置可扩展,完成数据库访问类反射封装)

    反射是.NET中的重要机制,通过反射,可以在运行时获得程序或程序集中每一个类型(包括类.结构.委托.接口和枚举等)的成员和成员的信息.有了反射,即可对每一个类型了如指掌.另外我还可以直接创建对象,即使 ...

  6. 激活 IntelliJ IDEA

    1.点击下面的链接下载 JetbrainsIdesCrack-4.2-release.jar 链接:https://pan.baidu.com/s/1eNY_bwxF7Efl4QG0yh6l1A  提 ...

  7. 如何把连接字符串放到App.cfg配置文件中

    首先主Windows程序要添加一个[应用程序配置文件]会在项目中生成一个App.config文件. 在项目中也引用System.Configuration这个引用 当前文档中没有源. 在后台数据类库中 ...

  8. linux的日常经常使用的命令

    现在经常用到linux命令,又时候回忘记,我就做个小笔记,大家也可以补充补充.....可以评论一下,我会截图做笔记的 netstat -ntlp //查看当前系统进程和端口等信息 tail -f fi ...

  9. .NET Core是什么

    对于开发人员,把C#语言和.NET描述为最重要的新技术一点都不夸张.NET提供了一种环境.在这种环境中,可以开发在Windows上运行的几乎所有应用程序.如:编写Web页面.WPF应用程序.REST ...

  10. 精选10款HTML5手机模板

    1.Stroller | Mobile & Tablet Responsive Template 演示地址   购买地址 2.Ocean Mobile Template 演示地址   购买地址 ...