使用默认的django的发送邮件,只适用于单邮箱。
setting中配置
# send e-mail
EMAIL_BACKEND = \'django.core.mail.backends.smtp.EmailBackend\' #email后端
EMAIL_USE_TLS = False #是否使用TLS安全传输协议
EMAIL_USE_SSL = True #是否使用SSL加密,qq企业邮箱要求使用
EMAIL_HOST = \'smtp.exmail.qq.com\' #发送邮件的邮箱 的 SMTP服务器,这里用了qq企业邮箱
EMAIL_PORT = 465 #发件箱的SMTP服务器端口
EMAIL_HOST_USER = \'1296771437@qq.com\' #发送邮件的邮箱地址
EMAIL_HOST_PASSWORD = \'pupilheart2019\' #发送邮件的邮箱密码
在视图中使用
from django.core.mail import send_mail
# send_mail的参数分别是 邮件标题,邮件内容,发件箱(settings.py中设置过的那个),收件箱列表(可以发送给多个人),失败静默(若发送失败,报错提示我们)
send_mail(\'python django 测试邮件\', \'你好朋友!人生苦短,我爱python!.\', \'XXXXXXX@qq.com\',
[\'11111111@qq.com\'], fail_silently=False)
以上有个问题就是,你配置好了,不能修改。。。网络大部分是这样写的?https://www.cnblogs.com/pupilheart/
如何写成动态的呢?
我们可以写一个类,初始化的时候可以将信息保存起来,通过判断是否加密验证去做处理。就可以啦!
我已经封装好了!直接拿去用吧
1 #!/usr/bin/env python 2 # -*- coding=utf-8 -*- 3 from smtplib import SMTP_SSL,SMTP 4 from email.header import Header 5 from email.mime.text import MIMEText 6 import smtplib 7 8 9 class SendMail: 10 11 def __init__(self,template_id,sendname, toname, title, content): 12 self.mail_host = \'smtp.qq.com\' # 设置服务器 13 self.mail_user = \'1296771437@qq.com\' # 用户名 14 self.mail_pass = \'pupilheart\' # 口令 15 self.mail_port = 25 # 端口 16 self.mail_ssh = False # 是否是加密端口 17 self.content = content # 邮件内容 18 self.sendname = sendname 19 self.toname = toname 20 self.title = title # 邮件标题 21 self.encoding = "utf-8" # 邮件编码格式 22 self.sender = \'m@c***.org\' #发件地址 23 self.receivers = \'8*******8@qq.com\' # 收件箱 24 25 def start(self): 26 self.msg() 27 if self.mail_ssh: 28 self.ssh() 29 else: 30 self.pt() 31 32 def msg(self): 33 self.msg = MIMEText(self.content, "plain", self.encoding) 34 self.msg["Subject"] = Header(self.title, self.encoding) 35 self.msg["from"] = self.mail_user 36 self.msg["to"] = self.toname 37 38 def ssh(self): 39 smtp = SMTP_SSL(self.mail_host) 40 smtp.set_debuglevel(0) 41 smtp.ehlo(self.mail_user) 42 smtp.login(self.mail_user,self.mail_pass) 43 smtp.sendmail(self.mail_user, self.receivers, self.msg.as_string()) 44 smtp.quit() 45 46 def pt(self): 47 server = smtplib.SMTP(self.mail_host, self.mail_port) 48 server.set_debuglevel(1) 49 server.login(self.mail_user, self.mail_pass) 50 server.sendmail(self.mail_user, [self.receivers,], self.msg.as_string()) 51 server.quit() 52 53 if __name__ == \'__main__\': 54 obj = SendMail(1,\'pupilheart\',\'pupil\',\'密码找回\',\'内容:这个pupilheart发送的测试邮件\',) 55 obj.start()
更新中 。。。