Python 发送邮件

Posted pupil_heart

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 发送邮件相关的知识,希望对你有一定的参考价值。

使用默认的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()

 

 更新中 。。。

 
 
 

以上是关于Python 发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

超实用的php代码片段

Javascript - 使用 HTML 片段通过电子邮件发送 JSON 输出

Github 大牛封装 Python 代码,实现自动发送邮件只需三行代码

C#和ASP.NET通过Gmail账户发送邮件的代码

python笔记- 发送邮件

实现Python代码发送邮件