postfix python发送邮件脚本配置

一、环境说明

我们通常需要发送邮件,用于报警,或邮件验证等需求,本次的环境要求如下:

CentOS 6.x   最小化安装,安装postfix(一般系统安装好自带的邮件系统),如果没有请如下操作:

#yum install postfix -y

python 2.6+

二、postfix简介

postfix是linux平台邮件系统,默认安装,并且自动开机运行,无需过多的配置,但有一点需要说明,postfix所

在主机绑定了备案域名则默认不会当作垃圾邮件,而所在主机没有绑定备案域名,大多邮件厂商会认为是垃圾邮件.

三、pytho发邮件脚本

#cat send_mail.py

#!/usr/bin/python
#coding:utf-8

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

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

"""
#接收人列表
to_list = to_str.replace("\n","").split(",")
#发送人
from_user = "[email protected]"
 #邮件的标题
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邮箱如图:

如上所述次实验postfix所在主机没有备案域名解析绑定,所以在QQ邮箱中是在垃圾箱中,而我的公司邮件没有收到!网易过滤掉了!

另外以上是针对本地的postfix 默认smtp非SSL发送的,还可通过 对QQ如下的 加密码认证发送邮件

有兴趣的可以试下

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())

四、带添加附件的脚本

#!/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 = """
,
[email protected],
"""
###以上邮箱为了隐私写的是假的 
#接收人列表
to_list = to_str.replace("\n","").split(",")
from_user = "[email protected]"#发送人
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()

效果如下图:

时间: 2024-09-30 17:32:48

postfix python发送邮件脚本配置的相关文章

python发送邮件脚本

尝试了好多遍都不能成功,然后找到这个可以成功发送! #!/usr/bin/python#coding:utf-8 import smtplib from email.mime.text import MIMETextfrom email.utils import formataddrmy_sender='  ' my_user=' ' def mail(): ret=True try: msg=MIMEText('填写邮件内容','plain','utf-8') msg['From']=form

python 发送邮件脚本

一.该脚本适合在 linux 中做邮件发送测试用,只需要填写好 发送账号和密码以及发送人即可,然后使用  python ./filename.py (当前目录下)即可.如果发送出错,会将错误详情抛出来. #!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'Apollo' import time import smtplib from email.mime.text import MIMEText _user = ""

CentOS6.5_64位系统下安装配置postfix邮件系统 启用并配置SMTP在第三方上边使用发送邮件

一前言 本来使用qq邮箱发送邮件,然后借助sendEmail来发送邮件告警,但是有每天的200封限制,很是不爽,于是想到来自己搭建邮件服务器来解决这个问题,关于使用sendEmail来借助qq邮箱来发送邮件详见http://www.cnblogs.com/Dicky-Zhang/p/5982973.html,在做这个之前,在网上查找了很多资料,发现很是混乱,不成一体,拼拼凑凑,根本无法使用,所以记录下来,方便后来人使用. 在做postfix之前,我成功搭建了iredmail,一个强大的开源系统.

python发送邮件的脚本

python发送邮件的脚本,带有邮件内容与附件,邮件内容为串格式,附件为文件.如果想把某个目录下的所有文件当作附件发送,那请去掉注释. 代码如下: #!/usr/bin/python #coding utf-8 from email.MIMEText import MIMEText from email.MIMEMultipart import MIMEMultipart from email.MIMEBase import MIMEBase from email import Utils, E

Appium环境的安装与配置,Python测试脚本测试

Appium自动化测试系列1 - Appium环境的安装与配置 发表于4个月前(2015-01-27 14:34)   阅读(803) | 评论(0) 0人收藏此文章, 我要收藏 赞0 寻找 会’偷懒’的开发者线下公开课,报名即享受免费体验云主机 摘要 看了网上很多有关Appium的安装配置贴,都写得语焉不详,不清不楚,正好打算把自动化测试框架从Robotium切换到Appium, 顺手记录一下,给大家参考.转载请注明出处. Appium 安装 配置 测试 之前一直使用Robotium做为And

Zabbix调用外部脚本发送邮件:python编写脚本

Zabbix调用外部脚本发送邮件的时候,会在命令行传入两个参数,第一个参数就是要发送给哪个邮箱地址,第二个参数就是邮件信息,为了保证可以传入多个参数,所以假设有多个参数传入 #!/usr/bin/env python #encoding:utf8 # # Zabbix Server 发送邮件脚本 # from email import encoders from email.header import Header from email.mime.text import MIMEText fro

Python发送邮件(常见四种邮件内容)

Python发送邮件(常见四种邮件内容) 转载 2017年03月03日 17:17:04 转自:http://lizhenliang.blog.51cto.com/7876557/1875330 在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下,Shell脚本发送邮件告警是件很简单的事,有现成的邮件服务软件或者调用运营商邮箱服务器. 对于Python来说,需要编写脚本调用邮件服务器来发送邮件,使用的协议是SMTP.

Windows下python环境变量配置

开始学习python开发时,我们首先要了解python是什么,并且了解python开发的环境以及环境配置,其实很多朋友在对python环境配置(http://www.maiziedu.com/course/python/276-2605/)时会出现各种各样的细节错误,导致浪费很多时间,去解决各种问题.因此,小编在本文中给大家讲讲python环境变量设置的方法. 默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量.此时不能在命令行直接使用python命令. 1. 

FAQ:Python环境变量配置

Python安装安装成,需要配置环境变量: 默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量.此时不能在命令行直接使用python命令. 1. 首先需要在系统中注册python环境变量:假设python的安装路径为c:\python2.7,则修改我的电脑->属性->高级->环境变量->系统变量中的PATH为: PATH=PATH;c:\python27 上述环境变量设置成功之后,就可以在命令行直接使用python命令.或执行"pytho