Python发送QQ邮件

简介: 本文实现Python发送QQ邮件。

以前也试过模拟发Email,但好像都忘了,于是按照菜鸟教程的smtplib方法重新试了一下:

import smtplib
from email.mime.text import MIMEText
from email.header import Header
 
sender = 'from@runoob.com'
receivers = ['<username>@qq.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
 
# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8')
message['From'] = Header("菜鸟教程", 'utf-8')   # 发送者
message['To'] =  Header("测试", 'utf-8')        # 接收者
 
subject = 'Python SMTP 邮件测试'
message['Subject'] = Header(subject, 'utf-8')
 
 
try:
    smtpObj = smtplib.SMTP('localhost')
    smtpObj.sendmail(sender, receivers, message.as_string())
    print "邮件发送成功"
except smtplib.SMTPException:
    print "Error: 无法发送邮件"

结果疯狂报错,说是什么ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接.

这个问题查搜索引擎发现都是说什么网络连接问题(比如防火墙、局域网等等),但其实不是关键问题,主要是这个代码有点问题。

修正后的代码是这样的:

import smtplib
from email.mime.text import MIMEText
from email.header import Header

f = open('./config.txt', 'r')

# \n换行符需要删掉
sender = f.readline()[:-1]
receiver = f.readline()[:-1]
password = f.readline()[:-1]

f.close()

receivers = [receiver]

message = MIMEText('Python骚扰邮件', 'plain', 'utf-8')
message['From'] = Header("Python骚扰邮件", 'utf-8')
message['To'] = Header("Python骚扰邮件", 'utf-8')

subject = 'Python-SMTP邮件测试'
message['Subject'] = Header(subject, 'utf-8')

try:
    smtpObj = smtplib.SMTP_SSL("smtp.qq.com", 465)
    smtpObj.connect("smtp.qq.com", 465)
    smtpObj.login(sender, password)
    smtpObj.sendmail(sender, receivers, message.as_string())
    print("邮件发送成功")
except smtplib.SMTPException:
    print("Error: 无法发送邮件")

做几点必要说明:

  1. 个人信息存在文件里是比较妥善的做法,通过读文件来获取信息
  2. 读的一行文件带有换行符,需要去掉末尾\n
  3. 发QQ邮箱需要开启SMTP服务并获取授权码
  4. 注意异常处理,其实这里的异常处理比较暴力,真的出错也不便于排错
相关文章
|
6月前
|
数据安全/隐私保护 Python
Python实现邮件发送(含详细设置方法),并总结自己遇到的错误
Python实现邮件发送(含详细设置方法),并总结自己遇到的错误
|
6月前
|
存储 搜索推荐 数据安全/隐私保护
python实战讲解之使用Python批量发送个性化邮件
python实战讲解之使用Python批量发送个性化邮件
|
6月前
|
前端开发 Python
【Python • 项目实战】pytesseract+pyqt实现图片识别软件小项目——(二)实现QQ截图功能
【Python • 项目实战】pytesseract+pyqt实现图片识别软件小项目——(二)实现QQ截图功能
214 0
|
3月前
|
前端开发 JavaScript Java
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
本文介绍了一个结合SpringBoot和Python的实用功能,旨在监控iPhone 15的库存状态并通过邮件提醒用户。系统采用SpringBoot监听苹果官网API,解析JSON数据判断是否有货,并展示最近的库存记录。此外,还能自动触发Selenium+Python脚本实现自动化购买。文中详细介绍了技术栈、接口分析、邮件配置及自动化脚本的设置方法。该项目不仅适用于熟悉后端开发的人员,也适合回顾Layui和Jquery等前端技术。
52 0
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
|
4月前
|
监控 网络协议 网络安全
SMTP操作使用详解并通过python进行smtp邮件发送示例
SMTP操作使用详解并通过python进行smtp邮件发送示例
123 3
|
5月前
|
Windows Python
每日自动发邮件(Python +QQ邮箱 + Windows 10定时任务)
每日自动发邮件(Python +QQ邮箱 + Windows 10定时任务)
每日自动发邮件(Python +QQ邮箱 + Windows 10定时任务)
|
4月前
|
机器学习/深度学习 数据采集 自然语言处理
Python基于词袋模型特征和TFIDF特征进行支持向量机模型中文邮件分类项目实战
Python基于词袋模型特征和TFIDF特征进行支持向量机模型中文邮件分类项目实战
|
6月前
|
安全 数据安全/隐私保护 开发者
Python实现简单的邮件发送系统
Python实现简单的邮件发送系统
67 3
|
6月前
|
存储 SQL 关系型数据库
Python实现给qq自动发消息 终于有人来和我说早安晚安了吗...
Python实现给qq自动发消息 终于有人来和我说早安晚安了吗...
|
5月前
|
Python
用Python实现QQ/微信消息轰炸
用Python实现QQ/微信消息轰炸