海瑞博客

python 之发送邮件服务[原著] 海瑞博客

Python 发送邮件

使用默认的django的发送邮件,只适用于单邮箱。

作者:海瑞博客 http://www.hairuinet.com/

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 = 'hairui@hairuinet.com'    #发送邮件的邮箱地址

EMAIL_HOST_PASSWORD = 'hairui2017HAIRUI'         #发送邮件的邮箱密码


在视图中使用  

from django.core.mail import send_mail  

# send_mail的参数分别是  邮件标题邮件内容发件箱(settings.py中设置过的那个),收件箱列表(可以发送给多个人),失败静默(若发送失败,报错提示我们)

send_mail('python django 测试邮件', '你好朋友!人生苦短,我爱python!.', 'hairui@hairuinet.com',

    ['574601625@qq.com'], fail_silently=False)


以上有个问题就是,你配置好了,不能修改。。。网络大部分是这样写的?http://www.hairuinet.com/

如何写成动态的呢?

我们可以写一个类,初始化的时候可以将信息保存起来,通过判断是否加密验证去做处理。就可以啦!


我已经封装好了!直接拿去用吧

 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 = 'hairui@hairuinet.com'  # 用户名
14         self.mail_pass = 'hairuinet.com'  # 口令
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 = '574601624@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,'海瑞网络','海瑞','密码找回','内容:这个海瑞网络发送的测试邮件',)
55     obj.start()

 

本文作者为原著,转载请保留本文链接!http://www.hairuinet.com/

posted @ 2017-07-19 15:04  海瑞PYthon  阅读(350)  评论(1编辑  收藏  举报
海瑞博客