需求:
1.发送邮件
2.不需要登录任何邮箱等等
3.支持多接收人
4.支持附件
5.支持命令行+方法调用
涉及模块:
smtplib, email
基于版本:
2.4
使用2.7和3.x的童鞋,需要修改下import信息
源代码:
#!/usr/bin/env python
#@author : wklken@yeah.ent
#@version : 0.1
#@desc: for mail sending.
import smtplib
import getopt
import sys
import os
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
import email.Encoders as encoders
def send_mail(mail_from, mail_to, subject, msg_txt, files=[]):
# Create message container - the correct MIME type is multipart/alternative.
msg = MIMEMultipart('alternative')
msg['Subject'] = subject
msg['From'] = mail_from
msg['To'] = mail_to
# Create the body of the message (a plain-text and an HTML version).
#text = msg
html = msg_txt
# Record the MIME types of both parts - text/plain and text/html.
#part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')
# Attach parts into message container.
# According to RFC 2046, the last part of a multipart message, in this case
# the HTML message, is best and preferred.
#msg.attach(part1)
msg.attach(part2)
#attachment
for f in files:
#octet-stream:binary data
part = MIMEBase('application', 'octet-stream')
part.set_payload(open(f, 'rb').read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(f))
msg.attach(part)
# Send the message via local SMTP server.
s = smtplib.SMTP('localhost')
# sendmail function takes 3 arguments: sender's address, recipient's address
# and message to send - here it is sent as one string.
mailto_list = mail_to.strip().split(",")
if len(mailto_list) > 1:
for mailtoi in mailto_list:
s.sendmail(mail_from, mailtoi.strip(), msg.as_string())
else:
s.sendmail(mail_from, mail_to, msg.as_string())
s.quit()
return True
def main():
files = []
try:
opts, args = getopt.getopt(sys.argv[1:], "f:t:s:m:a:")
#print sys.argv
for op, value in opts:
if op == "-f":
mail_from = value
elif op == "-t":
mail_to = value
elif op == "-s":
subject = value
elif op == "-m":
msg_txt = value
elif op == "-a":
files = value.split(",")
except getopt.GetoptError:
print(sys.argv[0] + " : params are not defined well!")
print mail_from, mail_to, subject, msg_txt
if files:
send_mail(mail_from, mail_to, subject, msg_txt, files)
else:
send_mail(mail_from, mail_to, subject, msg_txt)
if __name__ == "__main__":
main()
The end!
转载请注明出处,Thx!
wklken
Blog: wklken.sinaapp.com
Email: wklken@yeah.net
2012-09-02
分享到:
相关推荐
2. 附件:在电子邮件中,附件是随邮件一起发送的额外文件,可以是文档、图片、音频或视频等各类格式。 3. Outlook:Microsoft Outlook是一款广泛使用的个人信息管理软件,包含电子邮件、日历、联系人管理等功能,也...
然而,.eml文件是一种更通用的邮件格式,通常由基于Internet标准(如RFC822和RFC5322)的邮件系统所使用,这种格式可以被大多数邮件客户端读取和解析。 Python库`msgconvert`是专门用来进行这种转换的工具。这个库...
Python,作为一种广受欢迎的编程语言,通过其标准库中的`smtplib`模块,可以非常便捷地实现邮件发送功能。以下将基于Python3.4版本的环境,介绍如何利用Python发送带有中文附件的邮件。 首先,我们需要导入必要的...
smtplib是Python处理SMTP通信的核心模块,而string模块则包含了处理字符串的一些通用函数,例如splitfields用于分隔字符串。 以下是一个简单的Python脚本示例,演示了如何使用smtplib发送邮件到两个不同的收件人: ...
Python是一种高级、通用的编程语言,以其简洁明了的语法和强大的功能而受到广大程序员的青睐。在Python中进行网络编程是开发网络应用、服务和客户端的重要方式,它可以帮助我们构建与互联网交互的程序。本资源...
综上所述,SMTP发送邮件结合SSL或TLS提供了安全的邮件传输手段,支持发送附件的功能使得邮件更加实用,而跨平台的设计则确保了代码的通用性和可移植性。这些技术在现代电子邮件系统中扮演着至关重要的角色。
6. **自动化任务**:定时任务、脚本化的工作流程,如邮件发送、数据备份等。 7. **错误和异常处理**:如何优雅地处理程序运行时可能出现的问题,提高代码健壮性。 8. **面向对象编程**:类的定义、继承、封装和...
### Python 模块 smtplib 实现纯文本邮件发送功能详解 在现代软件开发过程中,电子邮件作为重要的通信手段之一,常被用于系统通知、用户验证、报告生成等多种应用场景。Python 作为一种广泛使用的编程语言,提供了...
4. **自动化脚本**:编写日常任务的自动化脚本,如文件管理、邮件发送等。 通过黑马程序员的Python教程,你将逐步建立起扎实的Python编程基础,并能应对各种实际问题,为进一步深入学习和应用Python打下坚实的基础...
9.2.2 通用换行符支持(UNS) 9.3 文件内建方法 9.3.1 输入 9.3.2 输出 9.3.3 文件内移动 9.3.4 文件迭代 9.3.5 其他 9.3.6 文件方法杂项 9.4 文件内建属性 9.5 ...
在Python中,logging模块预定义了很多种处理器,如StreamHandler(将日志输出到流,通常是控制台)、FileHandler(将日志输出到文件)、SMTPHandler(通过邮件发送日志)、HTTPHandler(通过HTTP发送日志)等。...
程序主要使用Python自带的标准模块来实现功能,同时也涉及到了第三方扩展模块,如psutil模块用于获取服务器硬件资源数据、os模块用于监测远程应用服务运行状态、matplotlib用于绘制图形化界面和写入日志文件、...
为了提高用户体验,系统可能还包含一些高级特性,比如自动识别扫描的名片图像并提取文本(这可能需要用到OCR技术,如`pytesseract`库),或者集成邮件发送功能,直接从系统内发送联系人电子邮件。 此外,考虑到数据...
除了基本的套接字操作外,Python 的 `socket` 模块还提供了许多实用的功能。 ###### 2.7.1 基于解析器库的函数 这些函数主要用于 DNS 查询和其他与域名解析相关的操作。 ```python import socket # 获取主机名 ...
在IT行业中,自动发送邮件是一项常见的任务,尤其在自动化流程、通知系统以及数据报告中扮演着重要角色。...通过结合Python的相关库,我们可以轻松地将这些组件整合在一起,实现自动发送带有附件的邮件功能。
3. 发送邮件:创建邮件消息对象,可以使用email.mime模块中的类,如MIMEMultipart(多部分消息)和MIMEText(纯文本)、MIMEImage(图片)、MIMEBase(通用类型)等。然后使用`server.sendmail(sender, recipient, ...
- **电子邮件**:使用SMTP发送邮件,通过POP3协议接收邮件。 #### 十一、数据库操作 - **SQLite**:轻量级数据库系统的使用方法。 - **MySQL**:关系型数据库管理系统的基本操作。 - **SQLAlchemy**:Python环境下...