Django 发送html格式的邮件
django中默认提供了发送邮件的库mail,通过这个库我们可以很方便的通过django发送一份电子邮件
- 在setting 中指定邮件服务器的基本信息
1 2 3 4 5 6 7 |
EMAIL_USE_SSL = True EMAIL_HOST = 'smtp.exmail.qq.com' # 如果是 163 改成 smtp.163.com EMAIL_PORT = 465 EMAIL_HOST_USER = '***@domain.com' # 帐号 EMAIL_HOST_PASSWORD = 'password' # 密码 DEFAULT_FROM_EMAIL = EMAIL_HOST_USER |
- 引用mail库发送邮件
1 2 3 4 5 6 |
from django.core.mail import EmailMessage from Across.settings import EMAIL_HOST_USER msg = EmailMessage("邮件标题","邮件内容",EMAIL_HOST_USER,[接受邮件列表]) msg.send() |
3.发送html模板邮件
可以利用Django的template库读取指定的html模板,然后将参数代入,首选需要在settings中设置template的目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ os.path.join(BASE_DIR,'templates') ##你的模板目录 ], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] |
然后将你准备好的html模板放入该目录,然后就是利用temlate的loader函数加载模板传入指定参数
1 2 3 4 5 |
html_content = loader.render_to_string('email.html',{'authcode':random,'title':"标题标题",'operation':operation_str}) msg = EmailMessage("您的验证码",html_content,EMAIL_HOST_USER,[email]) msg.content_subtype = "html" # Main content is now text/html msg.send() |
