码迷,mamicode.com
首页 > 编程语言 > 详细

Python 发送邮件

时间:2018-11-21 22:25:07      阅读:565      评论:0      收藏:0      [点我收藏+]

标签:quit   tps   email   收件箱   判断   sendmail   server   sel   ilb   

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 = ‘2830864552@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 = 2830864552@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 = member@kylinclub.org #发件地址
23         self.receivers = 574602224@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()

 

 更新中 。。。

Python 发送邮件

标签:quit   tps   email   收件箱   判断   sendmail   server   sel   ilb   

原文地址:https://www.cnblogs.com/pupilheart/p/9997946.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!