首页 > 编程语言 >python使用SMTP功能发送邮件

python使用SMTP功能发送邮件

时间:2024-07-30 14:10:03浏览次数:8  
标签:sender python SMTP smtp 发送 html msg 邮件

网页格式发送

for_email.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        h1 { color: brown; }
        p { margin: 5px; color: purple; }
    </style>
</head>
<body>
    <h1>这是一个邮件内容的标头</h1>
    <img src="https://img1.baidu.com/it/u=1890390320,3399874998&fm=253&fmt=auto&app=120&f=JPEG?w=1422&h=800">
    <!-- 其他内容 -->
</body>
</html>

main.py


import smtplib
import time
from email.mime.text import MIMEText


def send_message():
    """
    纯文本发送邮件
    """

    sender = '[email protected]'            # 发送邮箱地址
    passwd = 'XXX456'                   # 授权码
    receiver = '[email protected]'         # 接收邮箱地址

    # 创建纯文本内容
    msg = MIMEText(f'Python 邮件发送测试 {time.time()}', 'plain', 'utf-8')    # 第一个参数为邮件发送内容
    msg['From'] = f'abc <{sender}>'
    msg['To'] = receiver
    msg['Subject'] = 'Python SMTP 邮件测试'           # 邮件主题

    try:
        # 建立 SMTP、SSL 连接
        smtp = smtplib.SMTP_SSL('smtp.qq.com', 465)
        smtp.login(sender, passwd)
        smtp.sendmail(sender, receiver, msg.as_string())
        print('邮件发送成功')
        smtp.quit()

    except Exception as e:
        print(e)
        print('发送邮件失败')


def send_html_message():
    """
    html格式发送
    """
    sender = '[email protected]'            # 发送邮箱地址
    passwd = 'XXX456'                   # 授权码
    receiver = '[email protected]'         # 接收邮箱地址

    # 读入 HTML 文件的内容
    with open('./for_email.html', mode='r', encoding='utf-8') as f:
        html_content = f.read()

    # 指定类型为 HTML
    msg = MIMEText(html_content, 'html', 'utf-8')
    msg['From'] = sender
    msg['To'] = receiver
    msg['Subject'] = '测试发送 HTML 内容'

    try:
        smtp = smtplib.SMTP_SSL('smtp.qq.com', 465)
        smtp.login(sender, passwd)
        smtp.sendmail(sender, receiver, msg.as_string())
        print('发送成功')

    except:
        print('发送失败')


if __name__ == '__main__':

    send_message()
    send_html_message()


标签:sender,python,SMTP,smtp,发送,html,msg,邮件
From: https://www.cnblogs.com/jackchen28/p/18332208

相关文章

  • python之代码简化式(列表、字典生成式,递归函数,迭代器(iter)和生成器(yield)、匿名函数(
    文章目录前言1、列表、字典生成式2、递归函数2.1python中代码的递归深度(扩展)3、拓展:迭代器和生成器3.1迭代器(iter)3.2生成器(yield)4、匿名函数(lambda)4.1map函数4.2reduce函数(较少使用)4.3filter函数前言本文主要讲解一些简化代码格式的一些方法,方便大家更好的......
  • Python:在 Protocol 和 TypedDict 之间共享类型注释
    举这个简单的例子:from__future__importannotationsimporttypingastclassMyType:def__init__(self,s:str,i:int)->None:self.s=sself.i=iclassMyProto(t.Protocol):s:stri:intclassMyDict(t.TypedDict):......
  • PIL 和 python 静态类型
    我有一个函数参数,它可以接受图像的多种类型:defsomefunc(img:Union[np.array,Image,Path,str]):PILImage在这种情况下抛出以下异常:TypeError:Union[arg,...]:eachargmustbeatype.Got<module'PIL.Image'from...进一步检查图像对象后这才有......
  • 学会用Python爬取小说网站,想看什么就爬什么,广告也不用看了~
    今天以爬取笔趣阁小说网站为例,练习Python爬虫技术。通过这个爬虫,可以完成批量爬取一本小说的所有章节,并将所有章节内容按顺序保存到一个txt文档内,下面我们就开始吧。首先,百度搜索“笔趣阁”,发现有很多网站都叫笔趣阁。我们可以随便挑选一个网站尝试,本文我以‘https://......
  • 计算机毕业设计django+vue《Python数据分析》的教学系统【开题+论文+程序】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今数字化时代,数据分析已成为各行各业不可或缺的技能之一,而Python作为数据分析领域的首选语言,其重要性日益凸显。然而,传统的教学模式在......
  • 如何将多个变量分配给 python 函数中的单个参数?
    我正在尝试编写一个程序,如果可能的话,它需要一个三项式并对其进行因式分解。每当用户输入A、B和C时,三项式应该通过Factor(product,summation)函数获取,但我似乎无法弄清楚如何将A和C分配给乘积arg,将B分配给我尝试在函数外部声明不同的变量,product=(a*c)和summati......
  • python - 从文本生成音乐
    请给我一些建议为了解释一下,我输入“深度睡眠的睡眠音乐”,它将返回一个wav文件:https://www.youtube.com/watch?v=1wAdQhFJy54或者我给出一个wav文件,它会返回相同的现在这是我尝试过的:https://github.com/facebookresearch/audiocraft......
  • 从零开始的Python开发日记(7):短信验证功能开发流程
    短信验证功能开发流程在开发一个包含登录、注册以及短信验证的功能时,你需要遵循一个系统的开发流程。以下是实现这一功能的基本步骤,包括所需的技术和代码示例。1.环境配置首先,确保你的开发环境已经配置好,并安装了必要的库和工具。pipinstallfastapiuvicornsqlalche......
  • 【Python数值分析】革命:引领【数学建模】新时代的插值与拟合前沿技术
    目录​编辑第一部分:插值的基本原理及应用1.插值的基本原理1.1插值多项式1.2拉格朗日插值 1.3牛顿插值 1.4样条插值2.插值的Python实现2.1使用NumPy进行插值2.2使用SciPy进行插值2.2.1一维插值​编辑2.2.2二维插值3.插值的应用场景3.1数据平......
  • 在家用电脑上设置 Python 和 Jupyter,尝试打开 Jupyter 笔记本并显示错误,无法获取
    我有最新的Python版本3.12.4和以下版本的Jupyter:SelectedJupytercorepackages...IPython:8.26.0ipykernel:6.29.5ipywidgets:notinstalledjupyter_client:8.6.2jupyter_core:5.7.2jupyter_server:2.14.2jupyterlab......