Python下的邮件发送示例

Python下的邮件发送示例

Exchange邮箱发送示例

注:邮件内容是使用HTML构建的,如果熟悉这方面,可以使用HTML的方式构建自己想要的内容结构

安装包:

pip install exchangelib
from exchangelib import Credentials, Account, DELEGATE, Configuration, NTLM, Message, Mailbox, HTMLBody
from exchangelib.protocol import BaseProtocol, NoVerifyHTTPAdapter
import urllib3

urllib3.disable_warnings()  # 取消SSL安全连接警告

BaseProtocol.HTTP_ADAPTER_CLS = NoVerifyHTTPAdapter
cred = Credentials('域/用户名', '密码')  # 用户名不需要填写后缀
config = Configuration(
    server='邮箱服务器',  # 例如:mail.****.com
    credentials=cred,
    auth_type=NTLM
)
account = Account(
    primary_smtp_address='发件人邮箱地址',  # 例如:ad@test.com
    config=config,
    autodiscover=False,
    access_type=DELEGATE
)
def Email(to, subject, body):  # 创建函数用于方便调用发送
    m = Message(
        account=account,
        subject=subject,
        body=HTMLBody(body),
        to_recipients=[Mailbox(email_address=to)]
    )
    m.send()

Email("XXXX@qq.com", "邮件标题", "测试邮件内容")  # 测试调用发送邮件
QQ邮箱发送示例

QQ邮箱需要获取“授权码”,在登录密码处填写授权码即可

获取授权码教程:https://blog.csdn.net/weixin_45754765/article/details/121537185?spm=1001.2101.3001.6650.9&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-121537185-blog-118305788.235%5Ev39%5Epc_relevant_anti_t3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-121537185-blog-118305788.235%5Ev39%5Epc_relevant_anti_t3&utm_relevant_index=17

示例1:
import smtplib
import email.utils
from email.mime.text import MIMEText

message = MIMEText("我是邮件的内容")
message['To'] = email.utils.formataddr(('接收者显示的姓名', '接受邮箱地址'))
message['From'] = email.utils.formataddr(('发送者显示的姓名', '发送邮箱地址'))
message['Subject'] = '我是邮件的标题'
server = smtplib.SMTP_SSL('smtp.qq.com', 465)
#开始登录,第一个参数为登录邮箱地址
server.login('发送登录邮箱地址','密码')
server.set_debuglevel(True)
try:
    server.sendmail('发件人邮箱',['收件人邮箱'],msg=message.as_string())
finally:
    server.quit()
示例2:
import smtplib
import time
from smtplib import SMTP_SSL
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
# 邮件收件人发件人设置
host_server = 'smtp.qq.com'  # qq邮箱smtp服务器
sender_qq = 'xxxx@qq.com'  # 发件人邮箱
pwd = '授权码'
receiver = "收件人邮箱"
mail_title = "资讯概况"  # 邮件标题
# 邮件正文内容
title = "<p>小主,早上好,以下是热榜内容</p>"
p1 = "------百度前30条搜索热榜------"
p2 = "------知乎前50条搜索热榜------"
mail_content = title + p1 +p2

msg = MIMEMultipart('alternative')
msg["Subject"] = Header(mail_title, 'utf-8')
msg["From"] = sender_qq
msg["To"] = Header(receiver, "utf-8")

msg.attach(MIMEText(mail_content, 'html'))
try:
    smtp = SMTP_SSL(host_server)  # ssl登录连接到邮件服务器
    smtp.set_debuglevel(0)  # 0是关闭,1是开启debug
    smtp.ehlo(host_server)  # 跟服务器打招呼,告诉它我们准备连接,最好加上这行代码
    smtp.login(sender_qq, pwd)
    smtp.sendmail(sender_qq, receiver, msg.as_string())
    smtp.quit()
    print("邮件发送成功")
except smtplib.SMTPException:
    print("无法发送邮件")


  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值