Python批量发邮件--加附件/抄送

# !/usr/bin/env python
# -*- coding: UTF-8 -*-
import csv
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.utils import COMMASPACE, formatdate
from email import encoders
import time
def send_mail(server, fro, to, subject, text, chao):
    assert type(server) == dict
    assert type(to) == list
    msg = MIMEMultipart()
    msg[‘From‘] = fro
    msg[‘Subject‘] = subject
    msg[‘To‘] = COMMASPACE.join(to)  # COMMASPACE==‘, ‘
    msg[‘Cc‘] = chao  # COMMASPACE==‘, ‘
    msg[‘Date‘] = formatdate(localtime=True)
    msg.attach(MIMEText(text))
    xlsxpart = MIMEApplication(open(‘附件.docx‘, ‘rb‘).read())
    xlsxpart.add_header(‘Content-Disposition‘, ‘attachment‘, filename=‘附件.docx‘)
    msg.attach(xlsxpart)
    import smtplib
    smtp = smtplib.SMTP(server[‘name‘], server[‘port‘])
    smtp.ehlo()
    smtp.starttls()
    smtp.ehlo()
    smtp.login(server[‘user‘], server[‘passwd‘])
    smtp.sendmail(fro, to+[chao], msg.as_string())
    smtp.close()
if __name__ == ‘__main__‘:
    server = {‘name‘: ‘xx.163.com‘, ‘user‘: ‘xxxxx‘, ‘passwd‘: ‘xxx‘, ‘port‘: 25}
    fro = ‘xxxxxxxx‘
    subject = ‘xxxxx‘
    with open(‘1.csv‘, ‘U‘) as csvfile:
        # reader = csv.DictReader(csvfile)
        reader = csv.reader(csvfile)
        l = []
        for row in reader:
            l.append(row)
    print("开始")
    for i in l:
        name = i[0]
        mail = i[2:10]
        chao = i[1]
        b = ‘‘‘
        您好!
        值此“八一”建军节之际,祝愿贵公司蓬勃发展,建军节快乐!
                                                                                     
            ‘‘‘
        a = "尊敬的{0}:".format(name)
        text = a + b
        while ‘‘ in mail:
            mail.remove(‘‘)
        to = mail
        print(‘to‘, to, ‘ok‘, ‘chao‘, chao, ‘ok‘)
        time.sleep(7)
        send_mail(server, fro, to, subject, text, chao)
  1. csv 的格式

第一列是客户名称,第二列是抄送的人,第三列和后面的是要发送的人。

 msg[‘To‘] = COMMASPACE.join(to)  # COMMASPACE==‘, ‘
    msg[‘Cc‘] = chao  # COMMASPACE==‘, ‘
    smtp.sendmail(fro, to+[chao], msg.as_string())

需要特别注意的是上面,抄送的是 1个人。

Cc 是指要抄送,要注意抄送的是一个人还是多个。如果是多个,需要按照to的格式。

时间: 2024-11-09 04:16:00

Python批量发邮件--加附件/抄送的相关文章

1.3windows命令行下使用blat发邮件带附件

windows命令行bat批处理脚本的应用之blat程序自动发邮件1.3windows命令行下使用blat发邮件带附件__游旗丶引莫(孙忠) 发邮件脚本模板 rem ----邮件内容-----set body="test mail" rem ----邮件主题----set s="测试test"rem ----收件邮箱-----set [email protected]rem ----发件邮箱-----set [email protected]rem ----邮箱秘钥

python实现发邮件(sendmail.py )

#!/usr/bin/python #-*-coding:utf-8-*- #-*-coding:utf-8-*- #filename :sendmail.py import sys import smtplib from email.mime.text import MIMEText from email.header import Header from email.mime.multipart import MIMEMultipart from email import Utils imp

【Python系列】Python自动发邮件脚本

缘起 这段时间给朋友搞了个群发邮件的脚本,为了防止进入垃圾邮件,做了很多工作,刚搞完,垃圾邮件进入率50%,觉得还不错,如果要将垃圾邮件的进入率再调低,估计就要花钱买主机了,想想也就算了,先发一个月,看看效果再拓展吧. 脚本主要是通过Python写的,调的smtplib库,这些是基础,大家在网上一搜一大堆,今天主要给大家讲解下如何避免进入垃圾邮件系统,以及整个系统搭建时的一些思想.可能刚搞Python不久,有很多可能是错误的写法望大家提出来哈~ 配置 CentOS7.0系统 Python 3.4

python-发邮件脚本

折腾nagios发邮件好几天,终于完成,我的系统环境是ubuntu12.04,安装postfix服务,先贴上脚本,如下: #!/usr/bin/env python#-*- coding:utf-8 -*-''' from: 改成你的邮箱地址 '''import datetime,smtplib,string,sysfrom email.Header import Headerfrom email.MIMEText import MIMETextfrom email.MIMEMultipart

【Python】 发邮件用 smtplib & email

■ smtplib & email ■ 概述 发邮件主要用到smtplib以及email模块.stmplib用于邮箱和服务器间的连接,发送的步骤.email模块主要用于处理编码,邮件内容等等.主要是参考了那个发报表的脚本,简单记录了下最简单的用法,没啥参考价值= = ■ smtplib基本用法 smtp = smtplib.SMTP() #建立smtp对象 smtp.connect('server',port) #建立与smtp服务器的连接 smtp.login('user','password

python自动发邮件总结-未完待续

python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用.smtplib模块主要负责发送邮件,email模块主要负责构造邮件. smtplib使用较为简单.以下是最基本的语法. 导入及使用方法如下: import smtplib smtp = smtplib.SMTP() smtp.connect('smtp.163.com,25') smtp.login(username, password) smtp.sendmail(se

Python自动发邮件-yagmail库

之前写过用标准库使用Python Smtplib和email发送邮件,感觉很繁琐,久了不用之后便忘记了.前几天看知乎哪些Python库让你相见恨晚?,看到了yagmail第三方库,学习过程中遇到一些问题,记录在此处. 之前使用的python的smtplib.email模块发模块的一步步骤是: 一.先导入smtplib模块 导入MIMEText库用来做纯文本的邮件模板二.发邮件几个相关的参数,每个邮箱的发件服务器不一样,以126为例子百度搜索服务器是 smtp.126.com三.写邮件主题和正文,

python自动发邮件库yagmail

一般发邮件方法 我以前在通过Python实现自动化邮件功能的时候是这样的: import smtplib from email.mime.text import MIMEText from email.header import Header # 发送邮箱服务器 smtpserver = 'smtp.sina.com' # 发送邮箱用户/密码 user = '[email protected]' password = '123456' # 发送邮箱 sender = '[email protec

python 自动发邮件

一.一般发邮件的方法 Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件. 注意到构造MIMETEXT对象时,第一个参数就是邮件正文,第二个参数是MIME的subtype,传入'plain'表示纯文本,最终的MIME就是'text/plain',最后一定要用utf-8编码保证多语言兼容性. 然后,通过SMTP发出去: 1 # coding:utf-8 2 import smtplib 3 from email.mime.text i