Python3实现向指定邮箱发送邮件!听说这波操作能赚三万?

Python给指定邮箱发送邮件 邮箱设置: 这里我们选择使用QQ邮箱,进行相关设置: step1: step2: step3: 开启第一项的过程中,这里会出现发短信获取授权码的步骤,这里的授权码需要复制粘贴到后续代码的settings中的后面用户邮箱信息填写的地方 PY文件代码: 1.settings部分需要修改的地方: django中settings后的追加部分(此部分用于说明邮箱的相关用户信息): 2.views部... 阅读详情

Background

最近业务需求需要把生成的月报定时发送到指定邮箱,直接在网上找了相关经验改巴改巴给实现了,测试可以直接使用,生产是我从MySQL数据库获取文件信息和邮箱等使用的,程序中的注释相当清楚了。定时是通过shell脚本实现的。

获取邮件服务器和授权码

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

 

源码

from datetime import datetime
from pymysql import connect
import smtplib
from email.header import Header
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart


# 【mysql 基本信息】
class MysqlUtil:
    # 定义基本属性【测试】
    host = '110.110.110.110'
    username = 'wlf'
    password = 'wlf'
    database = 'wlf'
    charset = 'utf8'

    # 定义基本属性【生产】
    # host = '192.168.110.110'
    # username = 'wlf'
    # password = 'wlf'
    # database = 'wlf'
    # charset = 'utf8'

    # 定义构造方法
    def __init__(self):
        self.connection = None
        self.cursor = None
        # 初始化 MySQL 连接配置
        try:
            self.connection = connect(host=self.host, user=self.username, password=self.password,
                                      database=self.database, charset=self.charset)
            self.cursor = self.connection.cursor()
        except():
            print("mysql connect failed, please check the config")

    # 获取所有需要发送月报的项目以及对应的邮箱,返回字典结构,key为项目id,value为list,存储邮箱
    def get_projects_with_emails(self):
        table = 'cft_report_email'
        pid_email_dict = {}
        sql_projects = "SELECT `project_id`, `email` FROM %s" % table
        self.cursor.execute(sql_projects)
        res_pid_email = self.cursor.fetchall()
        for pe in res_pid_email:
            pid = pe[0]
            email = pe[1]
            if pid in pid_email_dict:
                pid_email_dict[pid].append(email)
            else:
                email_list = [email]
                pid_email_dict[pid] = email_list
        return pid_email_dict

    # 根据项目id和月报时间获取月报路径
    def get_filepath(self, pid):
        table = 'report_month'
        last_month_date = get_last_month_date()
        sql = "SELECT `path` FROM %s WHERE project_id = '%s' AND `report_date` = '%s'" % (table, pid, last_month_date)
        self.cursor.execute(sql)
        res_path = self.cursor.fetchone()[0]
        return res_path


# 获取上月日期 年份和月份 例子:2020年10月
def get_last_month_date():
    now_month = datetime.now()
    year = now_month.year
    month = now_month.month
    if month == 1:
        month = 12
        year -= 1
    else:
        month -= 1
    return str(year) + "年" + str(month) + "月"


# 向指定邮箱发送文件
def send_email(file, emails):
    """
    发送邮件的脚本,在邮件中可添加text文本,图片和附件
    :return:
    """
    # 设置服务器(这里是163的服务器,这里需要用户名和密码,host网上查对应的smtp服务器)
    mail_host = "smtp.163.com"
    mail_user = "yunluwlf@163.com"
    # 密码(这里的密码不是登录邮箱密码,而是授权码)
    mail_auth_code = "IXMHKCCISDRJGVJW"
    # 邮件发送和接收人
    sender = mail_user
    reciever = emails
    # 邮件头信息
    message = MIMEMultipart('related')
    message['From'] = sender
    message['To'] = ','.join(reciever)
    message['Subject'] = Header('数据简报【输电铁塔】')
    # ③图片 形式的内容添加到邮件(包含在②中,否咋上传的是图片附件)
    # fp = open(r'D:/wkspc/pycharm-wkspc/wind_rose/imgs/2020-10/ybj/wind-rose.jpg', 'rb')
    # content_image = MIMEImage(fp.read())
    # fp.close()
    # content_image.add_header('content-disposition', 'attachment', filename='wind-rose.jpg')
    # message.attach(content_image)
    # ④ 附件 形式的内容添加到邮件
    attach_table = MIMEApplication(open(file, 'rb').read())
    attach_table.add_header('content-disposition', 'attachment', filename=get_file_name(file))
    # 这样的话,附件名称就可以是中文的了,不会出现乱码
    attach_table.set_charset('utf-8')
    message.attach(attach_table)
    # 发送邮件,测试成功,流程都是固定的:创建客户端,登陆,发送,关闭
    try:
        # 实例化
        smtpObj = smtplib.SMTP()
        # 25为 SMTP 端口号
        smtpObj.connect(mail_host, 25)
        smtpObj.login(mail_user, mail_auth_code)
        print('登录成功!')
        smtpObj.sendmail(mail_user, reciever, message.as_string())
        smtpObj.quit()
        print("恭喜:邮件发送成功!")
    except smtplib.SMTPException:
        print("错误:邮件发送失败!")


# 根据文件路径获取文件名
def get_file_name(file_path):
    splits = file_path.split("/")
    return splits[len(splits) - 1]


if __name__ == '__main__':
    # 【测试】
    file_send = 'docs/results/2020年10月/羊八井测点2020年10月风场实测数据简报.docx'
    emails_to_send = ['1147314023@qq.com', 'longfei.wang@cloudansys.com']
    send_email(file_send, emails_to_send)

    # 【生产】
    # 获取MySQL工具类对象
    # mysql_util = MysqlUtil()
    # # 获取所有需要发送月报的项目id以及对应的邮箱
    # dict_pid_with_email = mysql_util.get_projects_with_emails()
    # # 获取所有需要发送月报的项目id
    # dict_keys = dict_pid_with_email.keys()
    # for project_id in dict_keys:
    #     # 根据项目id获取获取发送的月报路径
    #     the_filepath = mysql_util.get_filepath(project_id)
    #     # 获取项目id对应的邮箱
    #     the_email_list = dict_pid_with_email[project_id]
    #     # 向对应的邮箱发送邮件
    #     send_email(the_filepath, the_email_list)

效果

 

注意

经测试:支持网易邮箱和qq邮箱;不支持搜狐邮箱。
ps:其实搜狐邮箱也能发送成功,但是发过去的时候文件不知怎么被改名改后缀了,变成了`投递状态.txt`,当然,如果手动把txt改成docx还是可以打开文件的,内容也没变。
12

 

AI Orchestration实战:MuleSoft+LangChain构建企业级智能交响体系 AI Orchestration(AI编排)是一种面向企业复杂系统的智能协同范式,其核心在于解耦数据集成与语义推理——前者由MuleSoft等企业服务总线完成协议适配、数据聚合与合规封装,后者依托LangChain实现意图理解、工具调度与动态逻辑编织。该架构显著提升AI应用的可解释性、可审计性与业务对齐度,广泛应用于销售智能助手、客户流失预警、跨系统工单分析等高价值场景。本文基于真实产线案例,详解如何利用MuleSoft处理SAP RFC/IDoc/SOQL等异构协议,并通过LangChain工具调用(To 阅读详情

相关推荐

Anthropic Managed Agents:Agent 运行时的OS级工程实践

Agent 运行时(Agent Runtime)是大模型应用落地的核心基础设施层,其本质是为LLM驱动的自主代理提供状态管理、工具调度、凭证隔离与执行追溯能力。它并非新概念,而是对传统服务运行时(如容器/VM)在AI语境下的范式演进——强调原子性、可观测性与安全边界。随着AWS Bedrock AgentCore、Google Vertex AI Agent Builder等云原生方案成熟,Runtime正加速标准化与免费化;而Anthropic Managed Agents的价值,在于以生产级工程实现,首

fanjava 535

Python3 发送各种类型的邮件

引言 好久没发文章了,主要是这段时间太忙了~;另外菜菜有了一个属于自己的博客小站,优快云好久没写过文章了,

qq_42353939的博客 772

Mythos安全大模型:静态分析驱动的漏洞发现新范式

大模型在网络安全领域的应用正从基础代码生成迈向深度漏洞挖掘。Mythos代表了一种新型AI安全能力——它不依赖传统符号执行或动态污点追踪,而是通过语义级静态分析重构控制流与数据流,实现对陈旧漏洞(如CVE-2026-4747)的精准定位。其技术价值在于将渗透测试专家经验编码为可复用的推理链,在SWE-bench Pro等真实工程场景中达成77.8%的全流程修复成功率。典型应用场景覆盖金融网关JNDI注入分析、开源组件0day挖掘及企业级自动化补丁闭环。该能力跃迁标志着AI安全正从‘辅助工具’转向‘自主攻防主

dezhen7015的博客 499

Python3实现向指定邮箱发送邮件(支持附件文件、图片等)

Background 最近业务需求需要把生成的月报定时发送到指定邮箱,直接在网上找了相关经验改巴改巴给实现了,测试可以直接使用,生产是我从MySQL数据库获取文件信息和邮箱等使用的,程序中的注释相当清楚了。定时是通过shell脚本实现的。 源码 from datetime import datetime from pymysql import connect import smtplib from email.header import Header from email.mime.applicatio

on the way . . . 4129

小公司AI落地三件套:API+低代码+开源模型实战指南

在AI应用层,工程化能力已超越算法创新成为核心竞争力。所谓AI落地,并非必须自研大模型,而是理解基础能力封装(API)、系统集成范式(低代码/无代码)与可控执行载体(轻量开源模型)三者的协同逻辑。API提供即用型智能能力,解决‘有没有’问题;低代码平台如n8n、Dify降低流程编排门槛,实现业务逻辑快速闭环;而Qwen2-7B等轻量开源模型则保障数据主权、成本可控与故障降级能力。这种组合特别适用于销售线索分发、智能客服、合同审查等中小团队高频场景,让技术真正服务于需求验证、价值交付与敏捷迭代。

cuml0912的博客 402

Python发邮件源码

发邮件代码,Python,亲测可用。用pycharm写,直接更改发件人邮箱、密码,和收件人邮箱即可

Python40行代码发送邮件到指定邮箱

Python 40行代码搞定邮件发送(QQ邮箱为例) 1:获取QQ邮箱授权码 进入QQ邮箱找到如下位置,点击生成授权码,生成后复制出来备用 2:CV改改完事 # coding:utf-8 import smtplib from email.mime.text import MIMEText from email.header import Header class Mail: def __init__(self): # 第三方 SMTP 服务 self.mai

qq_41633604的博客 1918

Python读取指定日期邮件的实例

今天小编就为大家分享一篇Python读取指定日期邮件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

python发送邮件

python脚本发送邮件

qq_26800889的博客 1367

GD32模拟IIC读写DVC1124

GD32模拟IIC读写集澈AFE芯片DVC1124

ponyma_的博客 1226

Index-TTS-1.5:多模态语音合成的技术演进与商业落地实践

本文深入探讨了Index-TTS-1.5在多模态语音合成领域的技术演进与商业落地。该模型基于GPT风格的自回归Transformer架构,通过优化条件编码器和引入字符-拼音混合建模,显著提升了语音生成的稳定性、精准度和真实感,实现了高质量的零样本语音克隆。文章还详细介绍了其云端体验、本地WebUI部署及ComfyUI集成等实战路径,并分析了其在虚拟数字人、个性化内容创作等商业场景中的应用潜力与挑战。

weixin_29098367的博客 401

每次记歌词——使用Python自动发邮件提醒你记歌词

点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤八骏日行三万里,穆王何事不重来。大家好,我是Python进阶者。前言前几天在Python交流群里边,【冫马讠成】大佬分享了一个有趣的代码,用于定时发送歌词到邮箱,觉得挺有意思,这里拿出来给大家分享。实现思路实现思路倒是不难,其一是Python网络爬虫,将网页上...

pdcfighting的博客 309

利用OrthoFinder做泛基因家族聚类分析

这条命令会将 Arabidopsis_thaliana.TAIR10.59_longest_trans.pep.fa 文件中的所有序列ID,去掉ID中的空格后面的部分,只保留 > 后第一个空格之前的基因ID,并将结果保存在 An1.fasta 文件中。muscle 是一种常用的多序列比对工具,用于基因组或蛋白质序列的比对。基因家族(Gene family),是来源于同一个祖先,由一个基因通过基因重复而产生两个或更多的拷贝而构成的一组基因,它们在结构和功能上具有明显的相似性,编码相似的蛋白质产物。

qq_64400864的博客 2748

火了!GitHub标星三万,Python抢票神器

点击 机器学习算法与Python学习 ,选择加星标精彩内容不迷路大数据文摘出品作者:曹培信、池俊辉盼望着,盼望着,春节的脚步近了,然而,每年到这个时候,最难的,莫过于一张回家的火车票。据...

机器学习算法与Python学习 1096

MobaXterm详细使用教程

当然MobaXterm的功能远不止这些,但这些是最基本,最常用的,因此先拿出来讲。点击确定后,输入密码(输入密码时并不会显示,只管输入后按确定即可,第一次登陆成功后会提示保存密码,一般选择同意),就可以连接上虚拟机了。(2) 我们可以直接apt-get安装vim等常用功能(或者官网下载插件),实现在windows下模拟linux环境,这样就可以使用vi命令准备INCAR文件,也可以使用Gnuplot进行绘图。支持 Unix 命令(bash,ls,cat,sed,grep,awk,rsync,…

博客 4万+

Smart200 PLC实现Bool信号接通延时、关闭延时作用

解决Smart200 PLC时间继电器和脉冲扫描P或N不能重复使用的问题,用于Bool信号延时接通和延时关闭的作用,可调整时间基数

gk_121的博客 4318

模板驱动型文档自动化:从Word填空到工程化流水线

文档自动化是企业实现标准化、合规化与规模化内容交付的基础能力。其核心在于将文档解耦为数据、结构与表现三层,通过可版本控制、可审计、可复用的模板引擎替代人工编辑或不可控的AI生成。相比传统邮件合并,它支持条件逻辑、API实时数据、多格式输出与细粒度权限管理;在金融、法律、教育、SaaS等强规范场景中,能显著降低错误率、固化业务逻辑、保障品牌一致性,并支撑电子签章、CRM/ERP集成等端到端流程闭环。本文以Sqribble实践为例,详解模板即代码、动态分页、本地化渲染、字体嵌入与合规校验等关键工程落地要点。

weixin_33912453的博客 419

YOLOv8改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合

可扩展的高效物体检测BiFPN(加权双向特征金字塔网络)

Limiiiing的博客 1081

重生之我获得了黑客系统

显示器突然发出刺耳的电流声时,陈凡正叼着泡面叉子改代码。淡蓝色的 Windows 弹窗凭空出现在 IDE 界面中央,边框泛着诡异的荧光。他下意识去点右上角的叉号,光标却像被磁石吸住般钉在原地。【检测到宿主强烈悔恨情绪,符合绑定条件】【网络安全守护系统启动中…10%…70%…】【绑定成功。新手任务发布:修复当前服务器的 3 个高危漏洞,时限 1 小时。失败惩罚:体验比特币钱包被洗劫的真实痛感】陈凡的泡面 “啪嗒” 掉在键盘上。这个弹窗样式,这个任务描述,和他临死前看到的最后画面一模一样。

2401_86065041的博客 1049

7、树莓派故障排查全攻略

本文详细介绍了树莓派在使用过程中常见的各类故障及其排查方法。内容涵盖键盘鼠标诊断、电源诊断、显示诊断、启动诊断、网络诊断以及紧急内核的使用,提供了具体的解决方法和实用建议。同时,文章总结了故障排查流程、常见故障及解决方法的汇总,并给出了注意事项和操作建议,帮助用户高效解决树莓派使用过程中的问题,确保其稳定运行。

cream的博客 323

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

最全总结!聊聊 Python 发送邮件的几种方式

我们都知道 Python 内置了对 SMTP 的支持,可以发送纯文本、富文本、HTML 等格式的邮件

DEVELOPERAA的博客 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

python批量发送邮件_python笔记:批量将指定附件发送到指定邮箱地址

将上次笔记中拆分出来的供应商延期清单,以附件的形式发送给不同供应商的邮件地址,代码测试每秒钟发送出一个邮件 话不多说,代码如下#!/usr/bin/env python# coding: utf-8# In[49]:import smtplibfrom email import encodersfrom email.header import Headerfrom email.mime.multi...

weixin_39531992的博客 382

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: Python爬虫:使用代理服务器解决封IP!
下一篇: Python3实现向指定邮箱发送邮件!听说这波操作能赚三万?
pythonlaodi
博客等级 码龄6年 286粉丝 244原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值