Django发邮件
https://blog.csdn.net/qq_43030934/article/details/125657400
获取授权码的方法
163邮箱具体方法请参考:https://help.mail.163.com/faqDetail.do?code=d7a5dc8471cd0c0e8b4b8f4f8e49998b374173cfe9171305fa1ce630d7f67ac2cda80145a1742516
foxmail邮箱具体方法请参考:http://help.mail.163.com/faqDetail.do?code=d7a5dc8471cd0c0e8b4b8f4f8e49998b374173cfe9171305fa1ce630d7f67ac25c12dcb3d46222b6
outlook邮箱具体方法请参考: http://help.mail.163.com/faqDetail.do?code=d7a5dc8471cd0c0e8b4b8f4f8e49998b374173cfe9171305fa1ce630d7f67ac27535b97f102eda26
其他: https://www.cnblogs.com/kaibindirver/p/8216484.html
seetting文件
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtpdm.aliyun.com' # 如果是qq邮箱请更换为'smtp.qq.com
EMAIL_PORT = 25
#发送邮件的邮箱
EMAIL_HOST_USER = 'terracexxx@mail.ncctest.cn'
#在邮箱中设置的客户端授权密码
EMAIL_HOST_PASSWORD = 'xxxxxx'
view调用
class BookView(ModelViewSet):
#发送文字的
def get(self,request):
send_mail(
subject='这里是邮件标题',
message='这里是邮件内容',
from_email='terracetest@mail.ncctest.cn', # 发件人
recipient_list=['1462986575@qq.com'], # 收件人
# fail_silently=False
)
return Response(123)
#发送html的
def get(self,request):
send_mail(
subject='这里是邮件标题',
from_email='terracetest@mail.ncctest.cn', # 发件人
recipient_list=['1462986575@qq.com'], # 收件人
# fail_silently=False
html_message="<a href=#>123</a>" #多媒体html的写到这里
)
return Response(123)
#发送附件的
def send_email(request):
"""发送带附件"""
msg = EmailMessage(
subject='这是带附件的邮件标题',
body='这是带附件的邮件内容',
from_email='tian@163.com', # 也可以从settings中获取
to=['1206180814@qq.com']
)
msg.attach_file('t2.xls')
msg.send(fail_silently=False)
return HttpResponse('OK')

发送多个邮件
from django.core.mail import send_mail, send_mass_mail
def send_email(request):
message1 = ('邮件标题1', '内容1', 'tian@163.com', ['1206180814@qq.com'])
message2 = ('邮件标题2', '内容2', 'tian@163.com', ['1206180814@qq.com'])
send_mass_mail((message1, message2), fail_silently=False)
return HttpResponse('OK')
# 注:send_mail 每次发邮件都会建立一个连接,发多封邮件时建立多个连接。而 send_mass_mail 是建立单个连接发送多封邮件,所以一次性发送多封邮件时 send_mass_mail 要优于 send_mail。
拼接模版参数化
from django.template import loader
def get(self,request):
# 通过loader加载模板,通过HttpResponse 将 html相应给客户端
t = loader.get_template("123.html")
# 2.通过t对象, 将模板渲染成字符串,其中会参数化替换
#需要参数化的变量
parm={"pro_name":11111}
html = t.render(parm)
123.html
<h2>{{pro_name}}接口自动化测试报告</h2>
发送html
https://www.cnblogs.com/mocean/p/6791653.html

cc为抄送的意思
msg = EmailMultiAlternatives(subject, content, from_email, check_email, cc=["开闭司机@codemao.cn","开闭司机@codemao.cn"])
后记:
配置设置
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
这样Django将不会真正发送邮件,而是将邮件内容打印到控制台。这可以帮助你检查邮件的配置和内容是否正确。
也可以在页面渲染出来看看 见 https://www.cnblogs.com/kaibindirver/p/16855675.html
阿里云用授权码
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qiye.aliyun.com'
EMAIL_PORT = 465 # SMTP端口
EMAIL_HOST_USER = '邮箱@.cn'
EMAIL_HOST_PASSWORD = '授权码'
EMAIL_SUBJECT_PREFIX = '[测试平台]' # 为邮件Subject-line前缀,默认是'[django]'
EMAIL_USE_SSL = True
密码
EMAIL_HOST = 'smtp.qiye.aliyun.com'
EMAIL_PORT = 25 # SMTP端口 或者465
EMAIL_HOST_USER = '邮箱.cn' # 我自己的邮箱
EMAIL_HOST_PASSWORD = 'xxxxxx' # 你自己的邮箱密码
EMAIL_SUBJECT_PREFIX = '[测试平台]' # 为邮件Subject-line前缀,默认是'[django]'
EMAIL_USE_TLS = True

浙公网安备 33010602011771号