邮箱认证

Posted zhouze

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了邮箱认证相关的知识,希望对你有一定的参考价值。

from email.header import Header
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email import encoders
import smtplib
import time


class EmailPro:
    def send_mail(self, to_email, code):
        email_host = smtp.163.com  # 服务器地址 163邮箱"smtp.163.com"  qq邮箱"smtp.qq.com"都需要开通smtp权限
        sender = xxx@163.com  # 发件人(自己的邮箱)
        password = xxx  # 邮箱授权码
        receiver = xxx@qq.com  # 收件人
        msg = MIMEMultipart()
        now = time.strftime(%Y-%m-%d %H:%M:%S, time.localtime(time.time()))
        subject = now + 邮箱激活

        h = Header(发件人昵称自定义, utf-8)
        h.append(<xxx@163.com>, ascii)
        msg["From"] = h
        msg[Subject] = subject  # 标题
        msg[To] = xxx  # ...收件人...

        signature = ‘‘‘
    
	 You are most welcome!
    
	 点击下面的按钮激活邮箱
    ‘‘‘
        # text = MIMEText(signature, ‘plain‘)  # 签名
        # msg.attach(text)

        # 正文-图片 只能通过html格式来放图片,所以要注释25,26行
        mail_msg = f‘‘‘
        
    <p>
	 You are most welcome!</p>
    <p>
	 点击下面的按钮激活邮箱</p>
    <button style="background-color: #31708f; border-radius: 3px"><a href="http://127.0.0.1:8000/user/email/active/?email={to_email}&code={code}" style="color: white;font-size: 25px;text-decoration: none">激活邮箱</a></button>
    <p><img src="cid:image1"></p>
    ‘‘‘
        msg.attach(MIMEText(mail_msg, html, utf-8))
        # 指定图片为当前目录
        fp = open(rE:
ent_housemediaanner3.jpg, rb)
        msgImage = MIMEImage(fp.read())
        fp.close()
        # 定义图片 ID,在 HTML 文本中引用
        msgImage.add_header(Content-ID, <image1>)
        msg.attach(msgImage)

        # ctype = ‘application/octet-stream‘
        # maintype, subtype = ctype.split(‘/‘, 1)
        # 附件-图片
        # image = MIMEImage(open(r‘E:
ent_housemediaanner3.jpg‘, ‘rb‘).read(), _subtype=subtype)
        # image.add_header(‘Content-Disposition‘, ‘attachment‘, filename=‘img.jpg‘)
        # msg.attach(image)
        # 附件-文件
        # file = MIMEBase(maintype, subtype)
        # file.set_payload(open(r‘E:
ent_houseappsutils
esponse.py‘, ‘rb‘).read())
        # file.add_header(‘Content-Disposition‘, ‘attachment‘, filename=‘test.txt‘)
        # encoders.encode_base64(file)
        # msg.attach(file)

        # 发送
        smtp = smtplib.SMTP()
        smtp.connect(email_host, 25)
        smtp.login(sender, password)
        smtp.sendmail(sender, to_email, msg.as_string())
        smtp.quit()
        print(success)


email_worker = EmailPro()

 

以上是关于邮箱认证的主要内容,如果未能解决你的问题,请参考以下文章

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

邮箱认证

用邮箱认证注册,只有30%被激活?

邮箱认证流程

如何在Xamarin中快速集成Android版认证服务-邮箱地址篇

手机客户端无法连接Office 365邮箱