1、配置settings.py 文件
EMAIL_HOST = 'smtp.exmail.qq.com' # 邮件服务器
EMAIL_HOST_USER = 'xxx@xxx.com' # 用户名
EMAIL_HOST_PASSWORD = 'xxxxxx' # **密码,这里要用到授权码才行!**
EMAIL_HOST_TLS = False # 是否加密
2、编写一个类
# _*_ coding:utf8 _*_
from django.core.mail import send_mail
class SendMail:
"""
:param 邮件主题subject,邮件内容message, 发件人from_email, 收件人地址列表recipient_list, 是否静默发送fail_silently
:return True or False
"""
def __init__(self, mail_theme, mail_content, receive_add,):
self.mail_theme = mail_theme
self.mail_content = mail_content
self.receive_add = receive_add
def send(self):
try:
send_mail(
subject=self.mail_theme, # 邮件主题
message=self.mail_content, # 邮件内容
from_email='xxx1@xxx.com', # 发件人邮件地址
recipient_list=self.receive_add, # 收件人邮件地址列表
fail_silently=False, # 发送失败是否提示,False表示提示, True 表示静默发送不提示错误。
)
return True
except Exception as e:
print(e)
return False
3、调用示例
>>> from djapp.common.sendmail import SendMail
>>> sm = SendMail('MyTheme', 'Hello World!', ['123456789@qq.com', '123456789@outlook.com'])
>>> sm.send()
True
4、添加附件
from django.conf import settings
from django.core.mail import EmailMultiAlternatives
class SendMail:
"""
:param 邮件主题subject,邮件内容message, 发件人from_email, 收件人地址列表recipient_list, 是否静默发送fail_silently
:return True or False
"""
def __init__(self, mail_theme, mail_content, receive_add,):
self.mail_theme = mail_theme
self.mail_content = mail_content
self.receive_add = receive_add
def send(self, file):
try:
msg = EmailMultiAlternatives(
self.mail_theme, # 邮件主题
self.mail_content, # 邮件内容
'xxxxxx@example.com', # 发件人邮件地址
self.receive_add, # 收件人邮件地址列表
)
msg.attach_alternative(self.mail_content, "text/html")
msg.attach_file(file)
msg.send()
return True
except Exception as e:
print(e)
return False