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://www.cnblogs.com/zhouze/p/11490949.html
转载请注明原文地址: https://mac.8miu.com/read-58877.html