添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

message.txt里是邮件正文
mybase.txt里是放’收件人’和’给收件人的附件’,这两个之间以空格分隔,如果’给收件人的附件’有多个,以’,‘分隔(半角)
mycontacts.txt里放收件人和邮箱,这两个之间以空格分隔
mybase.txt和mycontacts.txt里如果有多个收件人,换行即可
注1:mycontacts和mybase里的收件人姓名必须一致,不然会出错!可以不要求必须行一致,但建议一致,便于自己分清!
mymail.txt里放的是发件人的’姓名’,‘邮箱地址’,‘密码’,‘服务器地址’(注意是SMTP地址)
注2:发件人是QQ邮箱的话,SMTP地址自己百度,密码不是QQ密码!需要到qq邮箱设置里找到SMTP位置,通过短信获取一串专用密码!其它邮箱同理!
注3:本程序所发邮件,客户端收取都没有问题,但如果是通过outlook或foxmail收取邮件,且版本较老的话可能会发生附件丢失或者附件变成.dat文件之类的bug,目前没有解决办法!

2019年8月9日更新:
1、全部重构了一下,解决了中文附件部分邮箱无法显示的bug;
2、做了关键字搜索,使得不需要专门弄个附件索引了;
3、如果发件人姓名(也就是key)在附件文件夹中没有类似关键字文件,就直接跳过;
4、附件支持各种附件,不局限于jpg图片;
5、支持同时一份附件发给多个人。

文件夹内部情况如图(py程序可以删掉~):
在这里插入图片描述
邮件收人文件内的格式,注意这里的逗号是英文的,逗号后面加不加空格无所谓
在这里插入图片描述

from smtplib import SMTP #邮件
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase #附件
from email import encoders #转码
from email.header import make_header
import os
import traceback
def get_receiver():
    '''读取收件人列表,以{'千秋': ['18930023842@189.cn', '532788667@qq.com'], '邮银': ['zhanglei1.sh@chinatelecom.cn']}的字典形态返回'''
    receiver_dict = {}
    with open('邮件收件人.txt', 'r') as contacts_file:
        for a_contact in contacts_file:
            temp_address_list = []
            a_contact_list = a_contact.split(',')
            name = a_contact_list[0].strip()
            for temp_address in a_contact_list[1:]:
                temp_address_list.append(temp_address.strip())
            receiver_dict[name] = temp_address_list
    return receiver_dict
def read_body(filename):
    '''导入邮件正文的内容'''
    with open(filename, 'r') as body_file:
        body_file_content = body_file.read()
    return body_file_content
def put_attachment(file_name, msg):
    '''添加日报附件'''
    part = MIMEBase('attachment', 'octet-stream')
    file_route = attach_file + '\\' + file_name
    part.set_payload(open(file_route, 'rb').read())
    encoders.encode_base64(part)
    part.add_header('Content-Disposition', 'attachment', filename="%s" % make_header([(file_name, 'UTF-8')]).encode('UTF-8')) #显示中文附件的话选这个
    msg.attach(part)
#发件人邮箱和密码
try:
    MY_ADDRESS = 'qcc31700298@shtel.com.cn'
    myPass = '******' #发件人密码
    server = SMTP('mail.sh.ctc.com')
    server.starttls()
    server.login(MY_ADDRESS, myPass)
    path_this_file = os.path.abspath('.') + "\\"
    #获取邮件正文
    email_body = read_body('邮件正文.txt')
    print('>>>获取邮件正文成功!')
    #获取收件人列表
    receiver_dict = get_receiver()
    print('>>>获取收件人列表成功!')
    #获取附件列表
    attach_file = path_this_file + '群发附件'
    attach_list = os.listdir(attach_file)
    print('>>>获取附件列表成功!')
    for key, value in receiver_dict.items():
        msg = MIMEMultipart()
        msg['From'] = MY_ADDRESS
        receivers = ','.join(value)
        msg['To'] = receivers
        msg['Subject'] = key + '酬金清单'
        msg.attach(MIMEText(email_body))
        temp_pic_list = []
        for pic in attach_list:
            if key in pic:
                put_attachment(pic, msg)
                temp_pic_list.append(pic)
        if temp_pic_list:
            server.send_message(msg)
            print('>>>{}邮件发送成功!'.format(key))
        else:
            print('>>>{}因无附件,没有发送!'.format(key))
    server.quit()
    print('>>>所有邮件均已发送成功!')
except:
    traceback.print_exc()
finally:
    a = input("按回车键退出!")
        smtp.sendmail(strFrom, To, msgRoot.as_string())
 注意啊:sendmail中的那个To是list,不是string,否则只能发给第一个人
				
1 设计要点 小猪在公司做出纳,干的活却包括了出纳、会计、结算专员等工作,周末都要被无奈在家加班,主要还没有加班费,简直是被公司严重压榨。每个月初都要给每个工长发预付款账单邮件,月中发结算款账单。重复性机械工作。   一个及格线上的程序员,最起码的觉悟就是将重复性的机械工作自动化,于是,在我花了一个多小时,帮她给一部分工长发了一次邮箱后,默默的回来写了这个脚本。   所以,设计要点就是一个字——...
python3 发送邮件携带附件(可携带多个不同格式的附件) 要了解SMTP的可以自行去百度,这里不做解释。 使用SMTP发送有邮件前要确保发件人的邮箱已开启SMTP服务。若发件人邮箱已开启此服务可跳过此教程直接参考代码。 一、163邮箱开启SMTP方式 1.登陆163邮箱网页版,进入"POP... 由于近期在协会举办了一场比赛,赛后需要将200份不同成绩单分别发给参赛者,为了方便,用python实现了该功能,并利用博客进行记录分享学习。 还是那句话,菜鸡菜笔,如有不正,还请大佬们不吝惜赐教! 第一阶段:前期准备 语言:python3 使用工具:pycharm 使用库:xlrd,xlwt,email,smtplib 第二阶段:代码实现与讲解 1.import 要实现该功能需作如下... import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText #image包可以发送图片形式
工作需要,每个月都要群发邮件不同team,邮件主题,cc信息等都根据team划分不同。手工发送经常用掉我大半时间,并且可能会有出错情况,想着还是写个小工具节省一些时间。 首先,需要在VBA 中添加Outlook的组件: Tools > References, 勾选”Microsoft Office 16.0 Object Library。截图如下: 设想是发送不同邮件不同的人,并且添加的附件也不一样,因此在excel中,建立以下几项: A1: Receiver Address #收件人邮箱,多
1、最近公司实现部分数据统计、分析的报表进行每天定时发送到相关人员的邮箱之中的配置代码被人为删除了,需要重新恢复该功能,由于原先是在linux上使用shell配置发送,实在是太繁琐,所以准备使用python来实现该功能,不过发现网上各种文档都是未经过整理,代码写的很不友善,比如发送多人的只能发送前一个邮箱,附件写死不灵活等等,故特写一遍比较记录。 主要会遇到的几个问题: 1、smtplib.S
1.导入第三方模块,发送电子邮件要用到的模块主要有smtplib,email两个。 import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.application import MIMEApplication 2.添加发件人...
addressee = 'test01@qq.com'+';'+'test02@jd.com'#收件人邮箱列表 cc = 'test02@163.com'+';'+'test03@alibaba.com'#抄送人邮件列表 mail_path ...
哇奥,fantastic baby…今天 老Amy 开始薅头发~还有啥宝贝没给大家亮出来… 就开始看到繁忙的 hr ,我设身处地的想,如果行政部门需要批量的给不同人员发送不同信息的邮件~是怎么来做的呢?emmm…或许excel、word和邮箱都有快捷的功能[原谅我布吉岛],可是万一用python更便捷呢?所以 老Amy 就开动了! 如下图,邮件.xlsx 文件中含有一些基本信息,而我们需要给不同收件人邮箱发送对应的正文内容。 打BOSS第一版 最开始,我们不要把事情想的太复杂,而是先用 Py
modelike: [code=python] ivs_content = soup.find(name='div', attrs={'id':'ivs_content', 'class':'Article_content'}) [/code] 哥们,这行代码我怎么找不到数据呢 Python:初步完成IE浏览器的查询、点击和文件下载 cyber_1987: Python:初步完成IE浏览器的查询、点击和文件下载 m0_58607645: 哈哈哈 看到了单转融,莫非是运营商的兄弟表情包表情包 上海满五非唯一,非普通性住房计算 TheMoyWonder: 学习了~上海房价太高啦 Python:爬取疫情每日数据 1234567***: 请问最后的结果是全国数据未更新 可能是什么情况导致的呢