设为首页 收藏本站
查看: 679|回复: 0

[经验分享] postfix python发送邮件脚本配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-9-15 09:54:18 | 显示全部楼层 |阅读模式
一、环境说明
     我们通常需要发送邮件,用于报警,或邮件验证等需求,本次的环境要求如下:
CentOS 6.x   最小化安装,安装postfix(一般系统安装好自带的邮件系统),如果没有请如下操作:
#yum install postfix -y
python 2.6+   


二、postfix简介
postfix是linux平台邮件系统,默认安装,并且自动开机运行,无需过多的配置,但有一点需要说明,postfix所
在主机绑定了备案域名则默认不会当作垃圾邮件,而所在主机没有绑定备案域名,大多邮件厂商会认为是垃圾邮件.

三、pytho发邮件脚本
#cat send_mail.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/python
#coding:utf-8

import smtplib
#用来定义邮件
from email.mime.text import MIMEText

#邮件发送的内容
msg= """
    linux基础
    链接:http://pan.baidu.com/s/1mhBDhnM
"""
#接收人以字符串的形式列出
to_str = """
1549214808@qq.com,

"""
#接收人列表
to_list = to_str.replace("\n","").split(",")
#发送人
from_user = "wgdbl@localhost"
#邮件的标题
title = "san 的 Linux福利"
mail = MIMEText(msg,"plain","utf-8")
               #发送的内容 #内容的类型 #内容的编码
               
mail["Subject"] = title
mail["From"] = from_user
mail["To"] = to_str

#登录smtp服务器
    #postfix smtp 服务器地址: localhost  (也可以是绑定了的域名)
    # smtp 服务器地址端口: 25  (默认)
smtp_server = "localhost"
smtp_port = 25
server = smtplib.SMTP(smtp_server,smtp_port)
server.sendmail(from_user,to_list,mail.as_string())
    #发送人
    #接收人列表
    #发送的内容
server.quit()



#python send_mail.py


打开QQ邮箱如图:
QQ截图20170915095352.png
如上所述次实验postfix所在主机没有备案域名解析绑定,所以在QQ邮箱中是在垃圾箱中,而我的公司邮件没有收到!网易过滤掉了!
另外以上是针对本地的postfix 默认smtp非SSL发送的,还可通过 对QQ如下的 加密码认证发送邮件
有兴趣的可以试下
1
2
3
4
5
smtp_server = "smtp.qq.com"
smtp_port = 465
server = smtplib.SMTP_SSL(smtp_server,smtp_port)
server.login(from_user,"tqnmomfayqpodjdh")
server.sendmail(from_user,to_list,mail.as_string())



四、带添加附件的脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/usr/bin/python
#coding:utf-8
import smtplib #负责登录smtp服务器的
from email.mime.text import MIMEText #用来定义邮件的
from email import MIMEMultipart #定义发送邮件的根容器
from email import MIMEBase #定义附件
from email import Encoders #对附件进行编码
msg= """
    linux基础
    链接:http://pan.baidu.com/s/1mhBDhnM
"""
#接收人字符串
to_str = """
,
1549214808@qq.com,
"""
###以上邮箱为了隐私写的是假的
#接收人列表
to_list = to_str.replace("\n","").split(",")
from_user = "root@localhost"#发送人
title = "san 的 Linux福利" #邮件的标题
#实例化一个邮件根容器
message = MIMEMultipart.MIMEMultipart()
#定义文本项
mail = MIMEText(msg,"plain","utf-8")
    #发送的内容    #内容的类型    #内容的编码
message.attach(mail)
#附件的类型的变量
mintype,subtype = "application","octet-stream"
#定义附件的类型
file_message = MIMEBase.MIMEBase(mintype,subtype)
#附件添加内容
with open("by.txt","rb") as f:
    file_message.set_payload(f.read())
#对附件进行编码
Encoders.encode_base64(file_message)
#附件的头部定义
file_message.add_header(
    "Content-Disposition",
    "attachment",
    filename = "by.txt"
)
message.attach(file_message)
message["Subject"] = title
message["From"] = from_user
message["To"] = to_str
#登录smtp服务器    #qq smtp 服务器地:localhost    #smtp 服务器地址端口: 25
smtp_server = "localhost"
smtp_port = 25
#server = smtplib.SMTP_SSL(smtp_server,smtp_port)
server = smtplib.SMTP(smtp_server,smtp_port)
#server.login(from_user,"") #如果是smtp ssl 加密的需要用户名密码登录
server.sendmail(from_user,to_list,message.as_string())
    #发送人 #接收人列表  #发送的内容
server.quit()




效果如下图:
QQ截图20170915095400.png


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-404554-1-1.html 上篇帖子: centos7单网卡配置IP地址脚本 下篇帖子: CentOS 6.9编译安装Python-2.7.10
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表