zoukankan      html  css  js  c++  java
  • 「Django」Django内置email发送邮件

    Django内置email发送邮件

    1、首先在settings.py文件设置相关参数

    STATIC_URL = '/static/'
    # 设置邮件域名 
    EMAIL_HOST = 'smtp.163.com'
    # 设置端口号,为数字
    EMAIL_PORT = 25
    #设置发件人邮箱
    EMAIL_HOST_USER = 'xxxxx@163.com'
    # 设置发件人 授权码
    EMAIL_HOST_PASSWORD = '自己的授权码'
    # 设置是否启用安全链接
    EMAIL_USER_TLS = True
    
    # 以上这个配置信息,Django会自动读取,
    # 使用账号以及授权码进行登录,
    # 如果登录成功,可以发送邮件
    

    2、回到views.py 文件,加入以下代码

    # 引入发送邮件的模块
    from django.core.mail import send_mail, send_mass_mail, EmailMultiAlternatives
    from django.conf import settings
    
    send_mail('关于中秋节放假通知',
            '中秋节放三天假',
            'qiqi1931@163.com',
            ['qiqi1931@163.com']
            fail_silently = False)
            # 值1:邮件标题   值2:邮件主人  值3:发件人  值4:收件人  值5:如果失败,是否抛出错误 
    if res == 1:
        return HttpResponse('邮件发送成功')
    else:
        return HttpResponse('邮件发送失败')
    

    3、多封给多个人进行发送

    message1 = ('这个周日你有空吗',
             '孔子东游见两小儿便日',
             'qiqi1931@163.com',
             ['891811395@qq.com', '819614513@qq.com'])
    
    message2 = ('这个周 日你有空吗?',
            '孔子东游,见两小儿,便日',
             'qiqi1931@163.com',
             ['891811395@qq.com', '1311173658@qq.com'])
    res = send_mass_email((message1, message2))
    if res == 2:
       return HttpResponse('多封邮件发送成功')
    else:
       return HttpResponse('多封邮件发送失败')
    

    4、进阶使用,多线程异步发送

    • utils添加sendEmail.py文件
    import threading
    from django.core.mail import send_mail
    from django.conf import settings
    
    
    class SendMail(threading.Thread):
        def __init__(self,subject,text,email,fail_silently=False):
            self.subject = subject
            self.text = text
            self.email = email
            self.fail_silently = fail_silently
            threading.Thread.__init__(self)
    
        def run(self):
            send_mail(
                self.subject,
                self.text,
                settings.EMAIL_HOST_USER,
                [self.email],
                fail_silently=self.fail_silently
            )
    
    • 调用方法
    send_mail = SendMail(subject,text,email)
    send_mail.start()
    
  • 相关阅读:
    点击CheckBox让Gridview控件在编辑与正常状态之间切换
    BMP图片转换为JPEG图片
    ASP.NET截取网页注释行之间的内容
    Mouse点击之后,复制GridView控件的数据行
    Mouse单击高亮GridView数据行
    ASP.NET div信息提示框显示几秒后隐藏
    RDLC报表带搜索与传参数功能演示(ASP.NET MVC)
    ASP.NET MVC应用程序使用axd格式文件
    Nginx通过geo模式实现限速白名单和全局负载均衡
    MySQL 下mysqladmin日常管理命令总结
  • 原文地址:https://www.cnblogs.com/wrxblog/p/10945414.html
Copyright © 2011-2022 走看看