下面的代码的作用是将电子书作为附件发送到163邮箱。
#!/usr/bin/env python
# -*- coding: utf8 -*-
import smtplib,email,os,sys
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from email import Encoders
from email.header import Header
def send_file(file):
base_name = os.path.basename(file) # windows下使用 decode('gbk').encode('utf8')
msg=MIMEMultipart()
msg['From'] = from_email
msg['To'] = to_email
msg['Subject'] = Header('===book===' + base_name, 'utf8')
msg['Reply-To'] = from_email
body=MIMEText('发送文件: ' + base_name, _subtype='html',_charset='utf8')
msg.attach(body)
part = MIMEBase('application', "octet-stream")
part.set_payload( open(file,"rb").read() )
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' % str(Header(base_name, 'utf8')))
msg.attach(part)
s = smtplib.SMTP(smtp_server)
s.login(user_name, password)
s.sendmail(from_email,to_email,msg.as_string())
s.close()
if __name__ == '__main__':
smtp_server='smtp.163.com'
from_email=('xxxxxxx@163.com')
to_email ='xxxxxxx@163.com'
user_name='xxxxxxx@163.com'
password='xxxxxxx'
# get input files
input_files = sys.argv[1:]
if len(input_files) == 0:
print >> sys.stderr, 'Error, no input specified'
exit(1)
for file in sys.argv[1:]:
print "start sending file: " + file
send_file(file)
print "OK sending file: " + file
代码很简单,网上很容易找到,比较tricky的地方是如何处理中文字符,容易出现乱码,主要原因在于python下的字符串实际上字节序列,不是字符序列,Python3.0下已经是字符串已经改为字符序列了,我这里使用的还是Python2.6。可能出现乱码的地方有标题, 正文内容,以及附件文件名称。正文内容可以在MIMEText构造函数中传递_charset参数,标题和附件名称通过Header类来设置正确的编码。需要注意的是,传递进去的字符串(实际上是字节序列)和指定的编码必须匹配,否则肯定也是乱码。
分享到:
相关推荐
Python发邮件代码
详细展示了各种使用python发邮件的程序实例
这里我们关注的主题是“Python发邮件源码”,这通常涉及到使用SMTP(Simple Mail Transfer Protocol)来实现邮件的发送。下面我们将深入探讨这个话题,并提供一个实际的Python代码示例。 首先,你需要了解Python中...
python发邮件程序,发送方法:./mail.py 收件人 主题 html内容 图片文件 附件文件'
python发邮件
python发邮件示例
接下来,设置邮件的基本信息,包括发件人、收件人、主题和邮件内容: ```python from_email = "your-email@example.com" to_email = "recipient-email@example.com" subject = "Python 自动发送的 HTML 邮件" ...
使用python3发送QQ电子邮件,发送人为自己,接收人可以一个可以多个。
2. 创建邮件:利用`email.mime`模块创建邮件对象,设置发件人、收件人、主题和邮件正文。 3. 检查SVN变化:可能通过执行SVN命令行工具(如`svn log`或`svn diff`)来获取最近的提交信息,或者通过直接访问SVN仓库的...
"Python 邮件发附件方法" Python 邮件发附件方法是指使用 Python 语言发送带附件的电子邮件。该方法使用了 Python 的 email 模块,通过该模块可以创建一个带附件的邮件实例,并将其发送到指定的收件人邮箱中。 ...
在这个“python爬虫发邮件示例demo”中,我们将探讨如何结合Python的爬虫技术和邮件发送功能,实现自动抓取数据并将其通过电子邮件发送出去。 首先,我们需要了解Python中的两个关键库:`requests` 和 `...
python发送邮件,通过qq邮箱代理,具体怎么设置请百度(获取qq邮箱授权码),可以发送邮件到邮箱,非常简洁的代码
- 发件箱:展示已发送的邮件记录。 - 草稿箱:保存未完成的邮件草稿。 - 垃圾箱:存放被系统识别为垃圾的邮件。 - 标记箱:用户可以自行将邮件标记为重要或不重要。 - 邮箱黑名单:用户可以添加不想接收邮件的...
简单的python发送邮件的示例,基于python2.7
本文实例为大家分享了python实现邮件自动发送的具体代码,供大家参考,具体内容如下 case 1:纯文本和HTML文件发送 # -*- coding: UTF-8 -*- import smtplib import traceback from email.mime.text import ...
Python实现SMTP发送邮件的详细教程旨在帮助开发者了解如何通过Python编程语言发送电子邮件。SMTP(Simple Mail Transfer Protocol)是一种用于在互联网上传输邮件的标准协议。在Python中,我们可以利用内置的`...
python发送邮件代码,服务器配置请自行修改,脚本中的地址是内网搭建的邮件服务器。可以结合系统定时任务配置邮件定时发送。希望帮到你
Python实现邮箱(以QQ邮箱为例)自动化处理,包括自动发送、读取、删除、定时发送... 3.3 读取某发件人的邮件 3.4 读取某收件人的邮件 3.5 将未读邮件标记为已读 4 利用Python筛选邮件 5 利用Python删除指定邮件 案例
本课程设计的目标是利用Python实现多进程发送邮件的功能。 首先,我们需要了解Python中的`multiprocessing`模块,它是Python提供的一个标准库,用于实现多进程。通过创建子进程,每个进程可以独立地执行任务,互不...