Sendmail with Attachment script - 徐明的博客

Sendmail with Attachment script

四月 24th, 2008

This is the python script for linux sendmail programe or  with smtp server.

You can use it free.It's simple ,but support the attachment.

# -*- coding: utf-8 -*- #sendmail with mimebase import smtplib import os,sys,codecs,string import locale from optparse import OptionParser from email.MIMEMultipart import MIMEMultipart from email.MIMEBase import MIMEBase from email.MIMEText import MIMEText from email.Utils import COMMASPACE, formatdate from email import Encoders def send_mail(send_from, send_to, subject, text, files, server): #assert type(send_to)==list assert type(files)==list msg = MIMEMultipart() msg['From'] = send_from msg['To'] = send_to msg['Date'] = formatdate(localtime=True) msg['Subject'] = subject msg.attach( MIMEText(text) ) for f in files: part = MIMEBase('application', "octet-stream") s=open(f,"rb").read() part.set_payload( s ) Encoders.encode_base64(part) part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(f)) msg.attach(part) if(server): smtp = smtplib.SMTP(server) smtp.sendmail(send_from, send_to, msg.as_string()) smtp.close() cmd="sendmail %s"%send_to print 'sending...' p=os.popen(cmd,"w") p.write(msg.as_string()) p.close() def main(argv): locale.setlocale(locale.LC_CTYPE, "") encoding = locale.getlocale()[1] if not encoding: encoding = "us-ascii" sys.stdout = codecs.getwriter(encoding)(sys.stdout, errors = "replace") sys.stderr = codecs.getwriter(encoding)(sys.stderr, errors = "replace") usage = "usage: %prog [options] arg \nnote:Ctrl+D or ... to end the body edit!" parser = OptionParser(usage=usage,version="%prog 0.1") parser.add_option("-n", "--name", dest="name" , help="Your name.") parser.add_option("", "--server", dest="server", help="The smtp server address.") parser.add_option("-f", "--files", dest="files" , help="Attachment files. Split by ,") (options, args) = parser.parse_args() if not options.name: options.name=raw_input(u"From:") if len(args) != 1: options.to=raw_input(u"To:") else: options.to=args[0] subject=raw_input(u"Subject:") print 'Body:'; raw='' body='' while True: raw=raw_input(' ') if raw=='...' or raw=='\x04': break; else: body+=raw +'\n' files=[]; if options.files: files=string.split(options.files,',') send_mail(options.name,options.to, subject, body,files,options.server) if __name__ == "__main__": main(argv=sys.argv[1:])

Sendmail with Attachment script相关推荐

  1. JAVA 邮件发送工具类

    1.封装邮件接收地址MODEL和邮件信息MODEL package com.sicdt.jnzxgzc.common.mail.model;import java.io.Serializable; / ...

  2. 为什么每个邮件收到后都会有一个htm的附件_Python 发送邮件各种姿势

    电子邮件是互联网应用最广的通讯服务,在工作中经常会有自动发邮件的需求,例如监控告警.注册通知.激活链接等. 而发送邮件是基于SMTP协议,接收邮件则是基于POP3或IMAP协议. 那POP3与IMAP ...

  3. qq机器人自动回复带脚本可以实现吗_有人用Python写了个自动亏钱脚本,还能微信实时通知!

    本系列所有文章的开头都会用一两句话总结一下对应文章的内容.对这个话题感兴趣的话可以继续往下读,不感兴趣可以直接关掉,绝不浪费读者的时间. 总结 本篇文章用 Python 实现了一个简单的自动交易脚本, ...

  4. Zabbix邮件报警配置

    一.安装sendmail或者postfix(安装一种即可) yum install sendmail #安装 service sendmail start #启动 chkconfig sendmail ...

  5. linux微信公众号报警,zabbix报警媒介,微信报警,邮件报警

    微信报警首先要申请微信企业公众号,创建相应应用,然后进行配置 微信企业公众号申请,目前可免费前往该地址进行申请 注册过程很简单,不信你试 然后进行企业公众号的基础设置 服务端报警微信脚本 [root@ ...

  6. Python实现代码行数统计工具

    转自:Python中文社区 我们经常想要统计项目的代码行数,但是如果想统计功能比较完善可能就不是那么简单了, 今天我们来看一下如何用python来实现一个代码行统计工具. 思路:首先获取所有文件,然后 ...

  7. 为什么每个邮件收到后都会有一个htm的附件_Python3.x 发送各种形式的告警邮件内容...

    在写脚本时,放到后台运行,想知道执行情况,会通过邮件.短信.微信等方式通知管理员,邮件目前用的最多的通知方式.在linux下,Shell脚本发送邮件告警是件很简单的事,有现成的邮件服务软件或者调用运营 ...

  8. linux关机机器语言,Linux 核心源代码分析 - 第十章 开机 关机 [续二] [超星]...

    版权声明:本文档录自超星阅览器"免费图书馆"中的<Linux 核心源代码分析>.原文为扫描版,本文本文档是在下(大天赐)[http://blog.sina.com.cn ...

  9. python 代码行数统计工具_使用Python设计一个代码统计工具

    问题 设计一个程序,用于统计一个项目中的代码行数,包括文件个数,代码行数,注释行数,空行行数.尽量设计灵活一点可以通过输入不同参数来统计不同语言的项目,例如: # type用于指定文件类型 pytho ...

  10. python 邮件_Python发送邮件(常见四种邮件内容)

    在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下,Shell脚本发送邮件告警是件很简单的事,有现成的邮件服务软件或者调 ...

最新文章

  1. 摄像头模组(CCM)与镀膜
  2. g-git 相关命令 及其 基本原理探索(二):git 在工作中的常用命令操作 ,超级实用!!!
  3. hdu 2795(线段树)
  4. matlab中的:的优先级_内容早期设计:内容优先
  5. iOS c语言 基本运算符
  6. Python爬虫从入门到放弃(二十)之 Scrapy分布式原理
  7. 《python透明人士,他是凭什么成为主流编程的宠儿?!》python基础语法
  8. Ranger开源流水线docker化实践案例
  9. FPGA常用FIFO简介
  10. PHP常量详解:define和const的区别
  11. er studio mysql_解决ER\Studio无法生成mysql列注释问题
  12. 京瓷300i_kyocera cs 300i kx驱动下载
  13. 动态规划练习一 18:买书
  14. 复试21天Day 20
  15. cython编译python_cython编译报错
  16. MFC实现窗口透明,并显示一张透明PNG图片
  17. Visual Studio 修改
  18. 使用conda安装python包
  19. 为什么不敢和别人竞争_为什么你很难交到朋友?可能是因为你不敢信任他人
  20. 2021-09-08-EMMC启动命令备份-设置bootargs-编译内核存放的路径-SD卡uboot启动备份,print打印的信息

热门文章

  1. iptables详解 1 -- iptables概念
  2. SIP Servlet开发环境配置
  3. python语言是非跨平台语言_python特点
  4. echart 地图 某个地区_「省份」Echart系列 | 绘制世界地图含中国各个省份(地图篇)(一) - seo实验室...
  5. 企业级数据服务的一点感受
  6. 【图论】拓扑排序:一个名字高大上的实际很简单的算法(图文详解)
  7. hustoj的搭建(最新踩坑)
  8. jq select 修改选中_转 jquery操作select(取值,设置选中)
  9. php mysql delete_PHP MySQL Delete
  10. 仿生软体机器人就业咋样_SRT近亿元B轮融资,中国软体机器人技术从空白到全球领先...