开发环境:
settings.py配置:
# settings.py
# qq邮件
## IMAP/SMTP
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_SSL = True
EMAIL_HOST = 'smtp.qq.com' # 如果是 163 改成 smtp.163.com
EMAIL_PORT = 465 #qq smtp 端口号
EMAIL_HOST_USER = '********@qq.com' # 帐号
EMAIL_HOST_PASSWORD = '**********' # qq授权码
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
## 网易邮件
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.163.com' # 如果是 163 改成 smtp.163.com
EMAIL_PORT = 25 # 网易 smtp 端口号
EMAIL_HOST_USER = '*****@163.com' # 帐号 # [email protected]
EMAIL_HOST_PASSWORD = '********' # 授权码
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
发送邮件函数:
from django.conf import settings
from django.core.mail import EmailMultiAlternatives
from email.header import make_header
import os
def send_mail(receive_email_addr,file_path):
'''
发送带附件邮件函数
parameter:
receive_email_addr: 邮箱地址list ['***@163.com','***@qq.com',...]
file_path: 附件绝对路径地址
'''
print('**************开始生成消息*********************')
subject = '报告邮件'
text_content = '这是一封重要的报告邮件.'
html_content = '<p>这是一封<strong>重要的报告邮件</strong>.</p>'
from_email = settings.DEFAULT_FROM_EMAIL
msg = EmailMultiAlternatives(subject, text_content, from_email, receive_email_addr)
msg.attach_alternative(html_content, "text/html")
# 发送附件
print('********************发送附件********************')
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.attach_file(file_path)
msg.send()
if msg.send():
print('******************发送成功*********************')
else:
print('******************发送失败*********************')
print('********************发送完成********************')