Python3发送邮件

该博客介绍了如何使用Python的smtplib和email模块发送SMTP邮件,包括登录邮件服务器、构造邮件内容以及发送HTML格式的邮件。示例代码展示了如何设置发送方和接收方信息,以及防止乱码的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# coding:utf-8
# author:ChenBaijing
# date:2022/4/7 14:33

# Python对SMTP支持有smtplib和email两个模块
# smtplib负责 登录邮件服务器 认证 和 发送邮件 对smtp协议进行了简单封装
# email负责 构造符合协议的邮件

import smtplib
from email.mime.text import MIMEText        # 负责构造邮件正文
from email.header import Header             # 负责构造邮件头

# 登录邮件服务器
smtp_obj=smtplib.SMTP_SSL('发件人邮箱中的SMTP服务器',端口号)     # 发件人邮箱中的SMTP服务器 端口号
# 如QQ邮箱的是smtp_obj=smtplib.SMTP_SSL('smtp.qq.com',465)
smtp_obj.login('发送人邮箱账号','密码')   # 发送人邮箱账号和密码
# 密码可能是自动生成的字符串 在邮箱设置 SMTP服务中查看 且必须将SMTP服务设置为打开

# 构造符合协议规则的邮件内容
msg=MIMEText('您购买的商品已发出 预计三天到达','plain','utf-8')    # 文件内容 文本格式 编码格式
msg["Accept-Language"]="zh-CN"                               # 设置发送语言格式
msg["Accept-Charset"]="ISO-8859-1,utf-8"                     # 设置格式 防止乱码
msg['From']=Header('xxxx官方售后服务处','utf-8')                # 发送方信息 编码格式
msg['To']=Header('xxxx女士111')                               # 收件方信息 编码格式
msg['Subject']=Header('xxxx商品流动通知','utf-8')               # 标题 编码格式

# 发送邮件          发送方邮件               接收方们的邮件         构造的邮件体
smtp_obj.sendmail('发送方邮件 ',['接收方1的邮件','接收方2的邮件'...],msg.as_string())

以上是发送普通格式的邮件

还可以发送html格式的邮件 只需要将MIMEText()中的'plain'格式换成'html'格式

# coding:utf-8
# author:ChenBaijing
# date:2022/4/7 14:33

# Python对SMTP支持有smtplib和email两个模块
# smtplib负责 登录邮件服务器 认证 和 发送邮件 对smtp协议进行了简单封装
# email负责 构造符合协议的邮件

import smtplib
from email.mime.text import MIMEText        # 负责构造邮件正文
from email.header import Header             # 负责构造邮件头

# 登录邮件服务器
smtp_obj=smtplib.SMTP_SSL('发件人邮箱中的SMTP服务器',端口号)     # 发件人邮箱中的SMTP服务器 端口号
# 如QQ邮箱的是smtp_obj=smtplib.SMTP_SSL('smtp.qq.com',465)
smtp_obj.login('发送人邮箱账号','密码')   # 发送人邮箱账号和密码
# 密码可能是自动生成的字符串 在邮箱设置 SMTP服务中查看 且必须将SMTP服务设置为打开

# 构造符合协议规则的邮件内容
mail_body='''
    <h1>尊敬的xxx女士:</h1>
    <p style="background-color:rgb(128,128,128)"><font size='5'>您购买的xx商品以出货 预计三日内送达</font></p>
    <br><hr>
    <a href="http://www.baidu.com">点击此处了解更多</a>
'''
msg=MIMEText(mail_body,'html','utf-8')                       # 文件内容 文本格式 编码格式
msg["Accept-Language"]="zh-CN"                               # 设置发送语言格式
msg["Accept-Charset"]="ISO-8859-1,utf-8"                     # 设置格式 防止乱码
msg['From']=Header('xxxx官方售后服务处','utf-8')                # 发送方信息 编码格式
msg['To']=Header('xxxx女士111')                               # 收件方信息 编码格式
msg['Subject']=Header('xxxx商品流动通知','utf-8')               # 标题 编码格式

# 发送邮件          发送方邮件               接收方们的邮件         构造的邮件体
smtp_obj.sendmail('发送方邮件 ',['接收方1的邮件','接收方2的邮件'...],msg.as_string())

使用Python通过POP3协议发送邮件其实是一个常见的误解,因为通常我们不会直接使用POP3发送邮件。POP3 (Post Office Protocol Version 3) 主要是用于从邮件服务器上接收和下载电子邮件到本地设备的协议。 如果您想要编写一个程序来发送电子邮件,则应该考虑使用SMTP(Simple Mail Transfer Protocol),它是专为传输电子邮箱而设计的标准通信协议。 下面简要介绍如何利用 Python 的 `smtplib` 库 发送一封简单的纯文本电邮: ```python import smtplib from email.mime.text import MIMEText # 邮件内容设置 msg = MIMEText(&#39;这是一封来自Python脚本自动发出测试邮件.&#39;, &#39;plain&#39;, &#39;utf-8&#39;) # 发件人、收件人的信息等可以在这里修改 sender_email = "your-email@example.com" receiver_emails = ["recipient1@example.com", "recipient2@example.com"] password = input("Type your password and press enter:") # 注意安全地处理密码! msg[&#39;Subject&#39;] = &#39;主题行 - 这里填写邮件标题&#39; msg[&#39;From&#39;] = sender_email msg[&#39;To&#39;] = &#39;, &#39;.join(receiver_emails) try: server = smtplib.SMTP_SSL(&#39;smtp.example.com&#39;, 465) # SMTP服务器地址及端口号 server.login(sender_email, password) server.sendmail(sender_email, receiver_emails, msg.as_string()) print("邮件成功发送") except Exception as e: print(f"发生错误: {e}") finally: if &#39;server&#39; in locals(): server.quit() ``` 为了能够顺利运行上述代码片段,请替换示例中的发信方邮箱账号(`your-email`)以及对应的SMTP服务提供商域名 (`smtp.example.com`) 和端口数值;同时还需要提供正确的登录凭据(如用户名即邮箱地址本身与对应授权码)。请注意保护好个人账户信息安全,在实际部署时避免明文存储敏感数据,并确保遵守相关的隐私政策和服务条款规定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值