利用Python代码自动发邮件/出现550,535错误??

一:开启SMTP服务

一定要打开所发邮箱的SMTP的服务,不然会报550错误

SMTPAuthenticationError: (550, '\xd3\xc3\xbb\xa7\xce\xde\xc8\xa8\xb5\xc7\xc2\xbd')

打开163邮箱,开启POP3/SMTP/IMAP服务
利用Python代码自动发邮件/出现550,535错误??_第1张图片
要是想使用QQ的话,也是同样需要开启服务:
打开QQ邮箱,点击 ‘账户’,一直往下拉,如下图
利用Python代码自动发邮件/出现550,535错误??_第2张图片
利用Python代码自动发邮件/出现550,535错误??_第3张图片
其中pop3/SMTP服务与IMAP/SMTP,两者之间,

IMAP/SMTP协议: IMAP协议是用来接收邮件用的,使用IMAP可以同步客户端与服务器之间的操作;SMTP是用来发送邮件使用的,它是一种‘推’的协议,不允许从服务器‘拿消息’
POP3/SMTP协议:POP3是用来接收邮件的,但是它不提供客户端与的服务器的同步操作;SMTP是用来发送邮件使用的,它是一种‘推’的协议,不允许从服务器‘拿消息’

开启SMTP服务后,一定要复制邮箱的授权码,否则会报535错误:

SMTPAuthenticationError: (535, 'Error: authentication failed')

二:Python中发邮件的模块

开启以上服务,就可以开始导入发邮件的模块了:
注意:发邮件是Python自带的模块

import smtplib
#MIMEText()用来定义邮件的正文,参数为HTML格式
from email.mime.text import MIMEText
#header()方法是用来定义邮件的标题
from email.header import Header

三:代码部分—QQ邮箱向163邮箱自动发送消息

#首先导包
import smtplib
from email.mime.text import MIMEText
from email.header import  Header
#发送邮箱的服务器(此处是QQ邮箱)
#要是163邮箱,则就是:smtp.163.com
email_server='smtp.qq.com'
#发送邮箱的用户名和密码(此处的密码是邮箱的授权码)
user_name='[email protected]'
password='xxxxxxxx'
#发送和接收邮箱
sender='[email protected]'
receiver='[email protected]'
#发送邮件的主题和内容
title='自动发送邮件'
content="

测试一下

"
#HTML邮件的正文内容 msg=MIMEText(content,'html','utf-8') msg['Subject']=Header(title,'utf-8') #邮件from...to 发出---接收者 msg['From']='[email protected]' msg['To']='[email protected]' #ssl协议端口号要使用465(内的参数是:服务器的地址,端口号) port=smtplib.SMTP_SSL(email_server,465) #helo向服务器标志身份 port.helo(email_server) #服务器返回结果确认 port.ehlo(email_server) #登录邮箱服务器用户名mima port.login(user_name,password) print('发送邮件开始.....') #参数分别是发送者,接收者,第三个参数是吧内容变成为字符串(发送的信息) port.sendmail(sender,receiver,msg.as_string()) port.quit() print('发送邮件完成!')

你可能感兴趣的:(笔记)