今天小看了一下有关django发送邮件,自己也动手写了一下,用163邮箱给qq邮箱发送邮件,贴出代码供大家参考一下
第一步,肯定是现有一个django环境框架,个人用的是pycharm直接创建的django工程
第二步,找到setting.py,然后在最后添加以下代码
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'#指定发送邮件的后端模块
EMAIL_HOST = 'smtp.163.com'#发送方的smtp服务器地址
EMAIL_PORT = 25
EMAIL_HOST_USER = 'xxx@163.com'
EMAIL_HOST_PASSWORD = 'xxx'
只需要把xxx替换为你自己的163邮箱账号和密码就可以啦
第三步,就是开始写代码啦
在manage.py同目录下创建send_mail.py文件(注:一定要在同一目录下,否则无法加载settings)
#!/usr/bin/env python3 # encoding:utf-8 ''' @author: lierl @file: send_mail.py @time: 2018/4/2 13:42 ''' __author__ = 'lierl' import os from django.core.mail import send_mail from django.core.mail import EmailMultiAlternatives os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djtest.settings") subject = '来自xxx邮件' text_content = "这是一封测试邮件,请忽略" html_content = "<h1>这是一封测试邮件,请忽略</h1>" from_email = 'xxx@163.com' to_email = ['xxx@qq.com']#可以是多个 #发一封普通邮件 send_mail( subject=subject, message=text_content, from_email=from_email, recipient_list=to_email ) #发一封带有附件的html邮件 msg = EmailMultiAlternatives(subject=subject, from_email=from_email, to=to_email) msg.attach_alternative(html_content, 'text/html') msg.attach_file("E:\\aa.xls")#添加附件 msg.send()
把from_email和to_email改成你自己对应的邮箱就可以啦,切记:from_email必须和settings.py中的EMAIL_HOST_USER一样
看一下发送后的效果吧
普通邮件:
带附件的html邮件:
小伙伴们可以自己亲自去测试一下吧,真正在项目中可能不会用的这么简单,比如发送邮件进行验证等,需要自定义模板,下次再写运用模板发送邮件