发邮件的python脚本
2024-10-20 18:52:05
1. 编写一个最简单的发邮件的python脚本
#coding: utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header
sender = '929135087@qq.com' #发件人账号
receiver = '929135087@qq.com' #收件人,以列表的形式支持多个收件人,例:['收件人1','收件人2']
subject = 'python email test' #标题
smtpserver = 'smtp.qq.com' #设置邮件服务器
username = '929135087@qq.com' #用户名
password = '*********' #授权口令
msg = MIMEText( 'Hello Python', 'plain', 'utf-8' ) #'内容','格式','编码'
msg['Subject'] = Header( subject, 'utf-8' )
- msg['From'] = Header( '小鱼', 'utf-8' ) #发件人
- try:
#smtp = smtplib.SMTP()
- smtp = smtplib.SMTP_SSL('smtp.qq.com:465') #使用465端口,默认25端口
smtp.connect( smtpserver )
smtp.login( username, password )
smtp.sendmail( sender, receiver, msg.as_string() ) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
- print("邮件发送成功")
smtp.quit()
- except smtplib.SMTPException:
- print("Error: 无法发送邮件")
2. 运行结果
如果在上述代码username
和password
,变量中填写邮箱的帐号密码那么会看到以下报错:
Traceback (most recent call last):
File "mail.py", line 18, in <module>
smtp.login( username, password )
File "/usr/lib64/python2.6/smtplib.py", line 589, in login
raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, 'Error: authentication failed')
3. 解决方法
调用163邮箱或qq邮箱服务器来发送邮件,我们需要开启POP3/SMTP服务,这时163邮件或QQ邮箱会让我们设置客户端授权码,这个授权码替代上面代码部分的password
即可成功发送邮件
最新文章
- .NET面试题系列[11] - IEnumerable<;T>;的派生类
- [转]struts1.2的action参数配置
- JSTL(1.1)的配置
- js引入php 用来加载静态页面 输出到页面中
- JavaScript的DOM操作-非重点部分
- SqlDateTime 溢出。
- php程序员的水平 看看自己属于那个级别的
- [问题2014A05] 解答
- python 跳出嵌套循环方法
- UIkit的confirm,好看点
- 【转】开始iOS 7中自动布局教程(一)
- librarynotfoundforlPodsAFNetworking解决放案
- SRM 585
- 如何在VBS脚本中显示“选择文件对话框”或“选择目录对话框”
- SpringCloud Feign使用详解
- nginx笔记3-负载均衡算法
- avg 的使用
- Python Pandas 简单使用之 API熟悉
- 正则表达式的一些探索(偏JavaScript)
- java菜鸟之微信分享
热门文章
- 在windows下进行linux开发:利用Vagrant+virtualbox
- 分享知识-快乐自己:Caused by: org.hibernate.tool.schema.extract.spi.SchemaExtractionException: More than one table found in namespace (, ) : Dept (XXX)
- 关于float与double区别
- Nginx-rtmp模块实现流媒体play、push、pull功能
- FEC之我见四
- oracle隐含参数的查看与修改
- css 更换浏览器 默认图标
- Parallel Programming-多消费者,多生产者同时运行并行
- java基础知识(5)---继承
- js遍历for,forEach, for in,for of