#!/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. 66_Plus-One

    目录 66_Plus-One Description Solution Java solution Python solution 1 Python solution 2 Python solutio ...

  2. Softwaretechnik

    1.Einführung 1.1 Was ist Softwareentwicklung Softwareentwicklung ist eine Wissenschaftliches Fach üb ...

  3. 【转】C#微信公众平台开发者模式开启代码

    using System; using System.IO; using System.Text; using System.Web.Security; namespace HPZJ.Web.sys. ...

  4. Spring mvc解析

    方案时间 ,写代码时间 ,解决技术难点时间 , 自测时间,解决bug时间 , 联调时间 ,数据库优化,代码走查1个接口:2个小时 把那个字段再复原回来,不然兼容性不强还有一个刷数据的接口 public ...

  5. Java基础教程(1)--概述

    一.什么是Java语言   Java是于1996年由Sun公司发布的一种极富创造力的面向对象的程序设计语言.它不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java ...

  6. 看libevent所遇到的英语生词

    libevent – an event notification library The libevent API (libevent应用程序)provides a mechanism(机制) to ...

  7. JS 监听键盘按键

    1. 实现Ctrl+ Enter 组合键触发事件 document.onkeydown=function(event){ var keyNum = window.event ? event.keyCo ...

  8. Java处理emoji

    1.问题产生情况 我遇到这个问题是做微信开发的时候有些有用的头像用了微信的emoji表情,然而我的mysql数据库用的编码是utf8_general_ci,就是utf-8编码,结果也就报错误了. 2. ...

  9. code.google.com certificate error: certificate is for www.google.com

    有时候我们会碰到下面错误:code.google.com certificate error: certificate is for www.google.com,类似如下: D:\>go ge ...

  10. lambda 表达式学习笔记

    在Java中传递一个代码段并不容易,不能直接传递代码段.Java是一个面向对象语言,所以必须构造一个对象,这个对象的类需要一个方法能包含所需的代码.lambda的出现有效的解决这个问题,让代码变得更加 ...