python发送邮件和POP3、SMTP及IMA

本文介绍了如何使用Python的smtplib和email模块发送邮件,包括设置SMTP服务器、授权码和邮箱地址。同时,解释了POP3、SMTP和IMAP三种邮件访问协议的区别。QQ邮箱通常只支持SSL协议,而163邮箱则使用SMTP协议和端口25。在实际操作中,需确保协议和端口匹配以避免SMTPException。

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

使用python发送邮件

准备工作

1、python环境、
2、含有使用的模块smtplib,email
3、设置好对应邮箱的pop3、SMTP,一般设置方式在:设置-账户里,找到开启就行,这里要记录邮箱的授权码一个邮箱可以有多个授权码,

代码部分

参考:https://zhuanlan.zhihu.com/p/24180606

class Mail:
    def __init__(self):
        ## 136邮箱SMTP
        self.mail_host = "smtp.163.com"  # 设置服务器:这个是163邮箱服务器,直接复制就可以
        self.mail_pass = "********"  # 上面提到的邮箱的获取的授权码
        self.sender = '18****8@163.com'  # 你的邮箱地址
        self.receivers = ['1****@163.com']

    def send(self):

        content = '你要发送的邮件内容'
        message = MIMEText(content, 'plain', 'utf-8')

        message['From'] = Header("发件人名字,可自由填写", 'utf-8')
        message['To'] = Header("收件人名字,可自由填写", 'utf-8')

        subject = '一个python的测试消息'  # 发送的主题,可自由填写
        message['Subject'] = Header(subject, 'utf-8')
        try:
            # smtpObj = smtplib.SMTP_SSL(self.mail_host, 465) # QQ的服务器
            smtpObj = smtplib.SMTP(self.mail_host, 25)  # 163的服务器,且不用ssl
            smtpObj.login(self.sender, self.mail_pass)
            smtpObj.sendmail(self.sender, self.receivers, message.as_string())
            smtpObj.quit()
            print('邮件发送成功')
        except smtplib.SMTPException as e:
            print('邮件发送失败')

if __name__ == '__main__':
    mail = Mail()
    mail.send()

POP3、SMTP及IMAP区别

参考:https://help.mail.163.com/faqDetail.do?code=d7a5dc8471cd0c0e8b4b8f4f8e49998b374173cfe9171305fa1ce630d7f67ac21b87735d7227c217
POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本
SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。
IMAP全称是Internet Mail Access Protocol,即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一。

163和126的端口和协议一样,只是将服务器地址中的126和136不同

在这里插入图片描述
注意,程序中的命令要和对应的协议和端口号对应,smtplib.SMTP或smtplib.SMTP_SSL

qq邮箱

好像qq邮箱只有ssl协议的访问
SSL协议(Secure Socket Layer,安全套接层)是由网景(Netscape)公司推出的一种安全通信协议
参考:https://service.mail.qq.com/cgi-bin/help?subtype=1&&no=369&&id=28
,https://service.mail.qq.com/cgi-bin/help?subtype=1&&no=167&&id=28
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值