1.开启stmp服务
以qq邮箱为例,在设置->账户中开启,会出现一个授权码,之后在程序中不使用邮箱密码,而使用这个授权码。
2.使用django自带的邮件服务
在工程目录的settings.p文件中设置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = False #是否使用TLS安全传输协议(用于在两个通信应用程序之间提供保密性和数据完整性。)
EMAIL_USE_SSL = True #是否使用SSL加密,qq企业邮箱要求使用
EMAIL_HOST = 'smtp.qq.com' #发送邮件的邮箱的SMTP服务器,这里用qq邮箱
# EMAIL_PORT = 25 #发件箱的SMTP服务器端口
EMAIL_PORT = 465
EMAIL_HOST_USER = 'xxx@qq.com' #发送邮件的邮箱地址
EMAIL_HOST_PASSWORD = 'xxx' #发送邮件的邮箱密码(授权码)
在应用目录的views.py中发邮件
from django.core.mail import send_mail
// title为标题,content为邮件内容,第三个参数为发送方,第四个参数为接收方,接收方可以有多个
send_mail(title, content, 'xxx@qq.com', ['xxx@163.com'], fail_silently=False)
3.使用第三方库smtplib
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 第三方 SMTP 服务
mail_host="smtp.qq.com" #设置服务器
mail_user="xxx@qq.com" #用户名
mail_pass="xxx" #口令
sender = 'xxx@qq.com' #发送方
receivers = ['xxx@163.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
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')
# 下面开始发邮件
smtp = smtplib.SMTP_SSL(mail_host)
# 可以打印出和SMTP服务器交互的所有信息。
# smtp.set_debuglevel(1)
smtp.ehlo(mail_host)
smtp.login(mail_user, mail_pass)
smtp.sendmail(sender, receivers, message.as_string())
smtp.quit()