Python QQ邮箱SSL发送教程:授权码与代码示例

1 下载量 146 浏览量 更新于2024-08-31 1 收藏 223KB PDF 举报
"本文主要讲解如何使用Python编程语言通过QQ邮箱实现SSL安全连接发送邮件。在实际应用中,SSL发送邮件能确保数据传输的安全性,防止邮件内容被窃取。文章提供了一段详细的示例代码,包括开启QQ邮箱的POP3/SMTP服务,获取授权码,以及编写Python代码发送邮件的步骤。" 在Python中,我们可以利用`smtplib`库来处理SMTP(Simple Mail Transfer Protocol)协议,实现邮件的发送。QQ邮箱提供了SSL(Secure Socket Layer)加密方式来确保邮件传输的安全性。要使用QQ邮箱发送邮件,首先需要在QQ邮箱设置中开启POP3/SMTP服务,并生成一个16位的授权码,而不是直接使用邮箱密码。 以下是一些关键的Python代码片段: 1. 导入必要的库: ```python import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart ``` 2. 设置SMTP服务器信息: ```python host = 'smtp.qq.com' # SMTP服务器地址 port = "465" # SSL端口号 sender = "357@qq.com" # 发件邮箱 pwd = 'sqmqweertyuiioplk' # QQ邮箱的16位授权码 receiver = 'yiwr@163.com,7894@qq.com' # 收件人邮箱 cc = 'ywr198592@126.com' # 抄送人邮箱 ``` 3. 创建邮件内容: ```python msg = MIMEMultipart() msg.add_header('subject', '测试邮件') # 邮件标题 msg.add_header('from', sender) # 发件人 ``` 4. 构建邮件正文(可选HTML或纯文本格式): ```python # HTML格式 # body = '<h1>这是一个python测试邮件</h1><p>test</p>' # msg.attach(MIMEText(body, 'html')) # 纯文本格式 msg.attach(MIMEText('Python普通格式,邮件发送测试', 'plain', 'utf-8')) ``` 5. 添加附件(如果需要): ```python # with open('attachment.txt', 'rb') as f: # part = MIMEBase('application', 'octet-stream') # part.set_payload(f.read()) # encoders.encode_base64(part) # part.add_header('Content-Disposition', 'attachment; filename="{}"'.format(os.path.basename('attachment.txt'))) # msg.attach(part) ``` 6. 使用SMTP_SSL建立SSL连接并发送邮件: ```python smtpObj = smtplib.SMTP_SSL(host, port) smtpObj.login(sender, pwd) smtpObj.sendmail(sender, receiver.split(','), msg.as_string()) # 发送邮件 smtpObj.quit() # 关闭连接 ``` 这个示例代码展示了如何使用Python和QQ邮箱的SSL功能来发送邮件。在实际应用中,根据需求,可以调整邮件内容、添加附件、设置抄送人等。记得在发送邮件前确保已经正确开启了QQ邮箱的SMTP服务并获取了授权码。