django Email

相关文档:https://www.cnblogs.com/Lin-Yi/p/7590855.html

 

一、相关配置: 以QQ为例

1、邮箱开通stmp服务  开通成功会自动弹出授权码弹框

django Email_第1张图片 django Email_第2张图片

2、setting配置:

# Email设置
# 管理员邮箱
ADMINS = (
    ('xxxx', 'xxxxx'),
)
# 非空链接,却发生404错误,发送通知MANAGERS
SEND_BROKEN_LINK_EMAILS = True
MANAGERS = ADMINS
 
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' # 固定写法
EMAIL_HOST = 'smtp.qq.com'                                # QQ邮箱SMTP服务器(邮箱需要开通SMTP服务)
EMAIL_PORT = 25                                           # QQ邮箱SMTP服务端口
EMAIL_HOST_USER = '[email protected]'                           # 我的邮箱帐号
EMAIL_HOST_PASSWORD = 'medxhyzcxodcdjhc'                  # 授权码 - 密码  xamniqaasycsdjag / medxhyzcxodcdjhc
EMAIL_SUBJECT_PREFIX = 'django website'                   # 为邮件标题的前缀,默认是'[django]'
EMAIL_USE_TLS = True                                      # 开启安全链接
# DEFAULT_FROM_EMAIL = SERVER_EMAIL = EMAIL_HOST_USER     # 设置发件人
EMAIL_FROM = '[email protected]'                                # 你的 QQ 账号

二、内容发送

1、简单内容发送

from django.conf import settings
from django.core.mail import send_mail

def sendEmial(self):
    email_title = '邮件标题'
    email_body = '邮件内容'
    email_to = '[email protected]'
    msg = "测试邮件发送!"
    send_status = send_mail(email_title, email_body, settings.EMAIL_FROM, [email_to], html_message=msg)

    if send_status:
        ret = {
            'success': True,
            'retCode': 200,
            'retMsg': "邮件添发送成功!"
        }
        return HttpResponse(json.dumps(ret), content_type='application/json')

django Email_第3张图片

2、html格式内容发布

import smtplib
from email.header import Header
from email.mime.text import MIMEText

def sendEmial(self):
    # html 格式内容发送
    # 发件人和收件人
    sender = '[email protected]'
    receiver = '[email protected]'

    # 所使用的用来发送邮件的SMTP服务器
    smtpserver = 'smtp.qq.com'

    # 发送邮箱的用户名和授权码(不是登录邮箱的密码)
    username = '[email protected]'
    password = 'medxxxxxxxxjhc'

    # 邮件主题
    mail_title = '主题:python邮件发送测试'

    # 读取html文件内容
    f = open('views/index.html', 'rb')  # HTML文件默认和当前文件在同一路径下,若不在同一路径下,需要指定要发送的HTML文件的路径
    mail_body = f.read()   # mail_body type: 
    f.close()
    
       #  手写html格式 设置邮件格式:
    mail_body = """
         

测试邮件内容html格式:

链接导航

测试段落,文本

""" # 邮件内容, 格式, 编码 message = MIMEText(mail_body, 'html', 'utf-8') message['From'] = sender message['To'] = receiver message['Subject'] = Header(mail_title, 'utf-8') try: smtp = smtplib.SMTP() smtp.connect('smtp.qq.com') smtp.login(username, password) smtp.sendmail(sender, receiver, message.as_string()) print("发送邮件成功!!!") smtp.quit() return True except smtplib.SMTPException: logging.error("发送邮件失败!!!") return False

django Email_第4张图片django Email_第5张图片

 

3、带附件发送 https://www.cnblogs.com/visec479/p/4142818.html

# 发送邮件
from django.conf import settings
from django.core.mail import send_mail
import smtplib
from email.header import Header
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def sendEmial(self):
    email_title = '邮件标题'
    email_body = '邮件内容'
    email_to = '[email protected]'
    cclist = ['[email protected]']    # 抄送人
    msg = "测试邮件发送!"

    # html 格式内容发送
    # 发件人和收件人
    sender = '[email protected]'
    receiver = '[email protected]'

    # 所使用的用来发送邮件的SMTP服务器
    smtpserver = 'smtp.qq.com'

    # 发送邮箱的用户名和授权码(不是登录邮箱的密码)
    username = '[email protected]'
    password = 'medxxxxxxxxjhc'

    # 邮件主题
    mail_title = '主题:python邮件发送测试'

    # 创建一个带附件的实例
    message = MIMEMultipart()

    # 构造附件1
    att1 = MIMEText(open('media/files/20190117/订饭.txt', 'rb').read(), 'html', 'utf-8')
    att1["Content-Type"] = 'application/octet-stream'
    att1["Content-Disposition"] = 'attachment; filename="OIDFrom.doc"'  # 这里的filename可以任意写,写什么名字,邮件中显示什么名字
    message.attach(att1)

    # 构造附件2
    att2 = MIMEText(open('media/files/20190117/1111.txt', 'rb').read(), 'html', 'utf-8')
    att2["Content-Type"] = 'application/octet-stream'
    att2["Content-Disposition"] = 'attachment; filename="OIDFrom.txt"'
    message.attach(att2)

    # 邮件内容, 格式, 编码
    message['From'] = sender
    message['To'] = receiver
    message['Subject'] = Header(mail_title, 'utf-8')

    try:
        smtp = smtplib.SMTP()
        smtp.connect('smtp.qq.com')
        smtp.login(username, password)
        smtp.sendmail(sender, receiver, message.as_string())
        print("发送邮件成功!!!")
        smtp.quit()
        return True
    except smtplib.SMTPException:
        logging.error("发送邮件失败!!!")
        return False

django Email_第6张图片

 

 

 

 

 

你可能感兴趣的:(后台,-,python,django)