大家好,欢迎来到IT知识分享网。
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 = '''
\n\t You are most welcome!
\n\t 点击下面的按钮激活邮箱
'''
# text = MIMEText(signature, 'plain') # 签名
# msg.attach(text)
# 正文-图片 只能通过html格式来放图片,所以要注释25,26行
mail_msg = f'''
<p>\n\t You are most welcome!</p>
<p>\n\t 点击下面的按钮激活邮箱</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(r'E:\rent_house\media\banner\3.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:\rent_house\media\banner\3.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:\rent_house\apps\utils\response.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()
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/34624.html