python发送SMTP邮件
时间: 2025-05-02 07:36:27 浏览: 19
### 使用Python SMTP库发送电子邮件
为了使用Python通过SMTP发送邮件,`smtplib`模块被用来创建一个SMTP客户端会话对象,该对象可以登录到任何支持标准SMTP响应码的服务器并发送消息[^3]。
下面是一个简单的例子,展示了如何利用`smtplib`和`email.mime.text.MIMEText`来构建一封纯文本邮件,并尝试向指定收件人地址发送这封邮件:
```python
import smtplib
from email.mime.text import MIMEText
from email.header import Header
sender = '[email protected]'
receivers = ['[email protected]'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8')
message['From'] = Header("来自Python脚本", '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 as e:
print(f"Error: 无法发送邮件 {e}")
```
对于特定的服务提供商,比如QQ邮箱,可能还需要额外配置一些参数以便能够正常工作。例如,在连接至QQ邮箱的SMTP服务器时,应当替换掉上面代码中的`'localhost'`为QQ邮箱对应的SMTP主机名,并且需要提供正确的端口号以及经过加密处理后的授权码来进行身份验证[^4]。
当涉及到更复杂的内容形式或者附件的时候,则需要用到其他类型的MIME类,如`MIMEMultipart()`用于组合多种不同部分的消息体;而文件则可以通过读取本地路径下的数据流加入到邮件正文中去。
#### 注意事项
- 如果遇到SSL/TLS相关错误,考虑改用`smtplib.SMTP_SSL()`方法建立安全连接。
- 对于某些服务商来说,可能会因为账户的安全策略阻止程序化操作,这时就需要调整对应账号的安全选项或是申请API密钥等方式解决权限问题。
阅读全文
相关推荐

















