postfix python发送邮件脚本配置(不乱码)

简介:

一、环境说明

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

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
import  smtplib
from  email.mime.multipart  import  MIMEMultipart
from  email.mime.text  import  MIMEText
 
SERVER  =  'localhost'
FROM  =  'root@localhost'
TO  =  [ '1549214808@qq.com,' ]     #添加收件人
SUBJECT  =  u 'san Linx福利'
TEXT  =  u """
     linux基础
     链接:http://pan.baidu.com/s/1mhBDhnM
"""
msg  =  MIMEMultipart( 'alternative' )
# 注意包含了非ASCII字符,需要使用unicode
msg[ 'Subject' =  SUBJECT
msg[ 'From' =  FROM
msg[ 'To' =  ', ' .join(TO)
part  =  MIMEText(TEXT,  'plain' 'utf-8' )
msg.attach(part)
server  =  smtplib.SMTP(SERVER)
server.sendmail(FROM, TO, msg.as_string().encode( 'ascii' ))
server.quit()

#python send_mail.py


打开QQ邮箱如图:

wKioL1m5-cCyot7FAADqMJzeUGs666.png-wh_50

如上所述次实验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()


效果如下图:

wKiom1m6QwGRuD76AADm9IjyJmI429.png-wh_50










本文转自 dyc2005 51CTO博客,原文链接:http://blog.51cto.com/dyc2005/1965179,如需转载请自行联系原作者
目录
相关文章
|
25天前
|
安全 Linux 网络安全
利用Python脚本自动备份网络设备配置
通过本文的介绍,我们了解了如何利用Python脚本自动备份网络设备配置。该脚本使用 `paramiko`库通过SSH连接到设备,获取并保存配置文件。通过定时任务调度,可以实现定期自动备份,确保网络设备配置的安全和可用。希望这些内容能够帮助你在实际工作中实现网络设备的自动化备份。
51 14
|
1月前
|
人工智能 编译器 Python
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
41 0
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
|
2月前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
212 61
|
2月前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
178 5
|
2月前
|
数据采集 存储 监控
21个Python脚本自动执行日常任务(2)
21个Python脚本自动执行日常任务(2)
128 7
21个Python脚本自动执行日常任务(2)
|
2月前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
105 7
|
3月前
|
监控 数据挖掘 数据安全/隐私保护
Python脚本:自动化下载视频的日志记录
Python脚本:自动化下载视频的日志记录
|
3月前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
3月前
|
运维 监控 网络安全
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。
|
3月前
|
JSON Shell Linux
配置Python的环境变量可
配置Python的环境变量
320 4

热门文章

最新文章

推荐镜像

更多