当需要将本地某个路径下的文档内容读取后并作为邮件正文发送的时候可以参考该文,使用到的模块包括smtplib,email。
#! /usr/bin/env python3 # -*- coding:utf-8 -*- # Author: Tdcqma import smtplib,email chst = email.charset.Charset(input_charset = \'utf-8\') # header里分别定义发件人,收件人以及邮件主题。 header = ("From: %s\nTo: %s\nSubject: %s\n\n" % ("sendmail@163.com", "receivemail@163.com", chst.header_encode("Mail Test"))) # 打开目标文档后读取并保存至msg这个多行str变量里。 f = open("./test121.txt",\'r\',encoding=\'utf-8\') msg = \'\'\' \'\'\' while True: line = f.readline() msg += line.strip()+\'\n\' if not line: break f.close() # 对header和msg邮件正文进行utf-8编码,指定发信人的smtp服务器,并输入邮箱密码进行登录验证,最后发送邮件。 email_con = header.encode(\'utf-8\') + msg.encode(\'utf-8\') smtp = smtplib.SMTP("smtp.163.com") smtp.login("sendmail@163.com","sendmail_passwd") smtp.sendmail(\'sendmail@163.com\',\'receivemail@163.com\',email_con) smtp.quit()
运行以上代码,收到邮件内容跟如下所示,其中邮件正文的内容即为./test121.txt文本里的内容。