一、獲取郵箱授權碼
以QQ郵箱為例子:
1、進入到設置,找到賬戶
2、開啟POP3等服務,點擊管理服務
3、進入管理服務,生成授權碼
?4、按照要求發送短信就可以了
5、將授權碼復制保存,離開界面就看不到了
二、django項目中的配置
1、settings.py配置郵箱服務
#郵件配置
# EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com' # 如果是 163 改成 smtp.163.com
EMAIL_PORT = 465
EMAIL_HOST_USER = 'xxxx@qq.com' # 發送郵件的郵箱帳號
EMAIL_HOST_PASSWORD = 'QQ郵箱的授權碼' # 授權碼,各郵箱的設置中啟用smtp服務時獲取
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER #收件人顯示發件人的郵箱
# DEFAULT_FROM_EMAIL = '<xxxxx@qq.com>' #也可以隨意寫
EMAIL_USE_SSL = True # 使用ssl
# EMAIL_USE_TLS = False # 使用tls
# EMAIL_USE_SSL 和 EMAIL_USE_TLS 是互斥的,即只能有一個為 True
?2、在視圖函數給郵箱發送短信
from django.core.mail import send_mail
import threading
from study_celery import settings
from django.view import View
from django.http import JsonResponseclass TestView(View):def post(self,request):email = request.POST.get('email')data = request.POST.get('data')t = threading.Thread(target=send_mail,args=("我給你發送郵件了",#郵件標題f'郵箱的主體內容,{data}',#郵件內容(文本),有html_message參數,這里配置失效settings.EMAIL_HOST_USER,#用于發送郵件的郵箱地址,配置授權碼的郵箱[email], # 接收郵件的郵件地址,可以寫多個),# html_message中定義的字符串即HTML格式的信息,可以在一個html文件中寫好復制出來放在該字符串中kwargs={'html_message': f"<p>這里是html的數據</p> <p>使用的是html的數據:{data}</p>"})t.start()return JsonResponse({"code":200,'msg':'郵件發送成功了'})
?3、調用請求的api,測試是否可以發送郵件