Python使用SMTP_SSL实现邮箱发送功能详解

Mia
Mia
发布时间:2026-10-15 | 5人浏览过
原创

本文详细介绍如何使用Python的smtplib库通过SSL协议发送电子邮件。重点讲解QQ邮箱授权码获取及配置方法,结合SMTP_SSL、MIMEText和Header模块,提供完整的代码示例与参数说明,帮助用户安全地实现邮件发送功能。

本文分享Python实现邮箱发送信息的具体代码,供读者参考。

一、SSL

SSL(Secure Sockets Layer,安全套接字层)是一项标准技术,旨在确保互联网连接的安全。它能够保护两个系统之间传输的任何敏感数据,防止网络犯罪分子读取或篡改传输中的信息。这两个系统可以是服务器与客户端(如浏览器与购物网站),也可以是两个服务器之间(例如涉及个人身份信息或工资单的应用程序)。

二、SMTP

SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是一组用于从源地址到目的地址传送邮件的规则,用于控制信件的中转方式。

Python的smtplib模块提供了一种便捷的途径来发送电子邮件,它对SMTP协议进行了简单的封装。

三、实现邮箱发送

实现该功能需要用到以下三个模块:

1. SMTP_SSL:用于传输加密,确保安全。虽然也可以使用smtplib,但建议使用SSL。

2. MIMEText:用于返回对象,方便操作并存放写入的内容。

3. Header:用于反垃圾邮件检测。如果不添加此模块,邮箱可能会将邮件标记为垃圾邮件,导致无法发送。

实现步骤如下:

1. 登录(使用SMTP_SSL):需要实例化SMTP_SSL对象。

2. 发送写入的信息:调用sendmail方法,参数包括发件人地址(starthost)、收件人地址(endhost)以及邮件内容(me.as_string())。

3. 退出:调用quit方法结束会话。


'''
参数说明:
    host: SMTP 服务器主机。 你可以指定主机的ip地址或者域名如:runoob.com,这个是可选参数。
    port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下SMTP端口号为25。
    local_hostname: 如果SMTP在你的本机上,你只需要指定服务器地址为 localhost 即可。
'''
import smtplib
smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )

'''
参数说明:
    from_addr: 邮件发送者地址。
    to_addrs: 字符串列表,邮件发送地址。
    msg: 发送消息
Python SMTP对象使用sendmail方法发送邮件,语法如下:
'''
SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options]

实现方式:

使用第三方邮箱服务:

例如,可以使用自己的QQ邮箱服务向对方(或自己)发送匿名邮箱信息。

但首先必须获取QQ邮箱的授权码(网上有相关教程,操作很简单)。


'''
    Python 邮箱 深夜测试
    授权码:*****
'''
from smtplib import SMTP_SSL
from email.mime.text import MIMEText
from email.header import Header

#第三方服务(qq)
mail_host = 'smtp.qq.com'
mail_user = '27*****' #账号
mail_pws = '*****' #授权码

#登录
smtp = SMTP_SSL(mail_host)  #实例化
smtp.ehlo(mail_host)
smtp.login(mail_user,mail_pws)#登录

#我和对方的邮件地址
my_mail = '27*****@qq.com' #自己打的邮箱地址
her_mail = '*****@163.com' #对方的邮箱地址

#写入的内容
cont = '你好我是HV,我来自外星球!'
#标题
title = '来着地球的HV'

#内容格式化
for i in range(10): #向目标发送10个邮箱
    msg = MIMEText(cont,'plain','UTF-8') #plain为txt格式,如果直接写txt的话,会被检测为垃圾邮箱
    msg['Subject'] = Header(title,'UTF-8') 
    msg['From'] = my_mail #这里有填写您的邮箱地址格式,对方才会知道发件人是谁,要不然对方默认为(无发件人)
    msg['To'] = '我的好友' #这个要注意!这里只能填字符串,如果填其他的数据类型就会报错!
    smtp.sendmail(my_mail,her_mail,msg.as_string())
    # smtp.quit()

smtp.quit() #关闭SMTP,邮箱信息传输

当然,也可以将相关逻辑封装在函数中,以便后续调用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表