目录
一.获取授权密码
以163邮箱为例,注册账号之后在设置中开启smtp服务,开通后会弹出一串密码,请记住您的密码,留作备用,如下。
二.代码
# -*- coding:utf-8 -*-
from smtplib import SMTP
from email.header import Header
from email.mime.text import MIMEText
def main():
# 请自行修改下面的邮件发送者和接收者
sender = 's191*******@163.com'
receivers = ['111111111@qq.com'] #填入接收者邮箱地址
message = MIMEText('用Python发送邮件的示例代码.', 'plain', 'utf-8')
message['From'] = 's191*******@163.com'
message['To'] = '111111111@qq.com'#填入接收者邮箱地址
message['Subject'] = Header('示例代码实验邮件', 'utf-8')
smtper = SMTP('smtp.163.com')
# 请自行修改下面的授权密码,在第一节中找到获取方式,不是账户密码
passs = '**************'
smtper.login(sender, passs)
smtper.sendmail(sender, receivers, message.as_string())
print('邮件发送完成!')
if __name__ == '__main__':
main()
三.发送带附件的邮件
以上代码是只有发送邮件,如果发送附件,代码如下:
from smtplib import SMTP
from email.header import Header
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
import urllib
def main():
# 创建一个带附件的邮件消息对象
message = MIMEMultipart()
# 创建文本内容
text_content = MIMEText('附件中有您的百亿项目请查收', 'plain', 'utf-8')
message['Subject'] = Header('项目报表', 'utf-8')
# 将文本内容添加到邮件消息对象中
message.attach(text_content)
# 读取需要传送的文件并将文件作为附件添加到邮件消息对象中
with open('fujian1.txt', 'rb') as f:
txt = MIMEText(f.read(), 'base64', 'utf-8')
txt['Content-Type'] = 'text/plain'
txt['Content-Disposition'] = 'attachment; filename=hello.txt'
message.attach(txt)
# 读取需要传送的文件并将文件作为附件添加到邮件消息对象中
with open('fujian2.xls', 'rb') as f:
xls = MIMEText(f.read(), 'base64', 'utf-8')
xls['Content-Type'] = 'application/vnd.ms-excel'
xls['Content-Disposition'] = 'attachment; filename=month-data.xlsx'
message.attach(xls)
# 创建SMTP对象
smtper = SMTP('smtp.163.com')
# 开启安全连接
# smtper.starttls()
sender = 's191*******@163.com'
receivers = ['********@qq.com']
# 登录到SMTP服务器
# 此处使用邮件客户端授权码进行登录,见第一节介绍
smtper.login(sender, '*************')
# 发送邮件
smtper.sendmail(sender, receivers, message.as_string())
# 与邮件服务器断开连接
smtper.quit()
print('发送完成!')
if __name__ == '__main__':
main()