django实现发送邮件
一、发送普通文本邮件
1、settings.py中的设置
# 发送邮件 # 发送邮件设置 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_USE_TLS = False # 是否使用TLS安全传输协议 EMAIL_USE_SSL = True # 是否使用SSL加密,qq企业邮箱要求使用 # SMTP地址 EMAIL_HOST = 'smtp.qq.com' # SMTP端口 EMAIL_PORT = 465 # 自己的邮箱 EMAIL_HOST_USER = '776265xxxx@qq.com' # 自己的邮箱授权码,非密码 EMAIL_HOST_PASSWORD = 'qvsvaxxxxxxxxx' EMAIL_SUBJECT_PREFIX = '[迎风而来的博客]'
2、视图函数实现发送文本
from django.shortcuts import render, HttpResponse from django.core.mail import send_mail def send_email(request): """ 发送邮件 :param request: :return: """ send_mail(subject='发送邮件的标题', message='发送邮件的内容', from_email='776265233@qq.com', #发送者邮箱 recipient_list=['1971956593@qq.com'], # 接收者邮箱可以写多个 fail_silently=False) return HttpResponse('邮件发送成功')
二、发送带有附件的邮件
1、settings.py中的设置
# 发送邮件 # 发送邮件设置 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_USE_TLS = False # 是否使用TLS安全传输协议 EMAIL_USE_SSL = True # 是否使用SSL加密,qq企业邮箱要求使用 # SMTP地址 EMAIL_HOST = 'smtp.qq.com' # SMTP端口 EMAIL_PORT = 465 # 自己的邮箱 EMAIL_HOST_USER = '776265xxxx@qq.com' # 自己的邮箱授权码,非密码 EMAIL_HOST_PASSWORD = 'qvsvabxxxxxxxxxx' EMAIL_SUBJECT_PREFIX = '[迎风而来的博客]'
2、视图函数实现发送附件
import os from django.conf import settings from django.core.mail import EmailMultiAlternatives from email.header import make_header def send_accessory_email(request): subject = '报告邮件' # 邮件主题 text_content = '这是一封重要的报告邮件.' # 邮件文本内容 html_content = '<p>这是一封<strong>重要的报告邮件</strong>.</p>' # 邮件主题内容样式 from_email = settings.EMAIL_HOST_USER # 发送者邮箱 receive_email_addr = ["19719xxxxxx@qq.com"] # 接收者邮箱可以写多个 msg = EmailMultiAlternatives(subject, text_content, from_email, receive_email_addr) msg.attach_alternative(html_content, "text/html") # 发送附件 file_path = r"C:\文件\附件.xlsx" # 发送附件的文件路径 text = open(file_path, 'rb').read() file_name = os.path.basename(file_path) # 对文件进行编码处理 b = make_header([(file_name, 'utf-8')]).encode('utf-8') msg.attach(b, text) # 传入文件名和附件 msg.send() if msg.send(): return HttpResponse('邮件发送成功') else: return HttpResponse('邮件发送成功')
python之基础知识大全