一、发送邮件基本流程
import smtplib
connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
connect.login('874616871@qq.com', 'lwxfnvtbnfpjbfbg')
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText
email = MIMEMultipart()
email['To'] = '985634675@qq.com'
email['From'] = 'ZHL <874616871@qq.com>'
email['Subject'] = Header('第一次发送邮件', 'utf-8').encode()
msg = MIMEText('你好', 'plain')
email.attach(msg)
connect.sendmail('874616871@qq.com', '985634675@qq.com', email.as_string())
connect.close()
二、发送附件
import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText
connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
connect.login('874616871@qq.com', 'lwxfnvtbnfpjbfbg')
mail = MIMEMultipart()
mail['Subject'] = Header('发送附件', 'utf-8').encode()
mail['From'] = 'ZHL <874616871@qq.com>'
mail['To'] = '985634675@qq.com'
msg1 = MIMEText('hello world!', 'plain', 'utf-8')
mail.attach(msg1)
data1 = open('files/05-Excel基本公式.xlsx', 'rb').read()
file1 = MIMEText(data1, 'base64', 'utf-8')
file1['Content-Disposition'] = 'attachment; filename="ExcelFormula.xlsx"'
mail.attach(file1)
data2 = open('files/car.png', 'rb').read()
file2 = MIMEText(data2, 'base64', 'utf-8')
file2['Content-Disposition'] = 'attachment; filename="car.png"'
mail.attach(file2)
connect.sendmail('874616871@qq.com', '985634675@qq.com', mail.as_string())
connect.close()
三、发送超文本
import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText
name = input('客户姓名:')
gender = input('客户性别:')
if gender == '男':
call = '先生'
else:
call = '女士'
connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
connect.login('874616871@qq.com', 'lwxfnvtbnfpjbfbg')
email = MIMEMultipart()
email['Subject'] = Header('发送超文本', 'utf-8').encode()
email['From'] = 'ZHL <874616871@qq.com>'
email['To'] = '985634675@qq.com'
data1 = open('files/data.html', encoding='utf-8').read() % (name[0], call, name)
msg = MIMEText(data1, 'html')
email.attach(msg)
connect.sendmail('874616871@qq.com', '985634675@qq.com', mail.as_string())
connect.close()
四、格式字符串
"""
name = input('请输入姓名:')
age = int(input('请输入年龄:'))
gender = input('请输入性别:')
# 1. 格式字符串
"""
a.语法:包含格式占位符的字符串 % (数据1, 数据2, 数据3, ...)
b.说明:格式占位符
%s - 任何类型的数据的占位
%d - 数字(整数)占位符,填充的时候会自动将数据转换成整数
%f - 数字占位符,填充的时候会让数字保留6位小数
%.Nf - 数字占位符,填充的时候会让数字保留N位小数
"""
msg = '%s今年%d岁' % (name, age)
print(msg)
msg = 'a:%s, b:%d, c:%.2f' % ('abc', 23.9, 30234.0923)
print(msg)
name = input('请输入姓名:')
age = int(input('请输入年龄:'))
gender = input('请输入性别:')
if gender == '男':
msg = '%s先生,你今年%d岁!' % (name[0], age)
else:
msg = '%s女士,你今年%d岁!' % (name[0], age)
print(msg)
五、邮件批量发送
data = [
{'name': '余婷', 'gender': '女', 'score': 1000, 'email': '726550822@qq.com'},
{'name': '张三', 'gender': '男', 'score': 567, 'email': 'y_t209@163.com'},
{'name': '朱聪', 'gender': '男', 'score': 478, 'email': 'zhuucc@163.com'},
{'name': '马诗雨', 'gender': '女', 'score': 672, 'email': '873925431@qq.com'},
{'name': '李相葛', 'gender': '男', 'score': 325, 'email': '1873215638@qq.com'}
]
import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText
connect = smtplib.SMTP_SSL('smtp.qq.com', 465)
connect.login('874616871@qq.com', 'lwxfnvtbnfpjbfbg')
for x in data:
to_email = x['email']
score = x['score']
name = x['name']
if x['gender'] == '女':
call = '女士'
else:
call = '先生'
if score >= 500:
pre = '尊敬的'
else:
pre = ''
email = MIMEMultipart()
email['Subject'] = Header('京东会员活动通知', 'utf-8').encode()
email['From'] = 'JingDong <874616871@qq.com>'
email['To'] = to_email
email_content = open('files/data.html', encoding='utf-8').read() % (pre+name[0], call, name)
msg = MIMEText(email_content, 'html')
email.attach(msg)
connect.sendmail('874616871@qq.com', to_email, email.as_string())
connect.close()
六、OS常见函数
import os
"""
1)绝对路径:文件或者文件夹在计算机中的全路径(windows从盘开始写,而且程序写绝对路径的时候字符串的最前面要加r)
2)相对路径:
前提:需要操作的文件或者文件夹在工程里面的时候才可以使用相对路径
a. 用 . 开头表示当前目录(当前目录指的是,当前代码文件所在的文件夹)
注意:如果相对路径是以'./'开头的,'./'可以省略
b. 用 .. 开头表示当前目录的上层目录
"""
result = os.path.exists('./files/a')
print(result)
result = os.path.exists('./files/car.png')
print(result)
if not os.path.exists('./files/img'):
os.mkdir('./files/img')
content = os.listdir('./files')
print(content)
result = os.path.isfile('./files/test')
print(result)
print('--------------------------------华丽的分割线-------------------------------------')
for name in content:
if os.path.isfile('./files/%s' % (name)):
print(name)