1.在使用邮箱登陆需要在邮箱内开启SMTP服务
2.注意在代码中登陆程序使用的密码为第三方授权登陆码,QQ邮箱为系统提供的授权码 网易邮箱为自己设置的授权码
QQ邮箱模拟
import smtplib # 发生邮件模块 from email.mime.text import MIMEText # 邮件文本 """ SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则, 由它来控制信件的中转方式 SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。 sever 服务器 """ SMTPsever= "smtp.qq.com" # 邮箱的SMTP服务器地址 Sender = "1442121251@qq.com" # 发送邮箱的地址 password="ohvnrwaaufxthfjh" #使用的是授权码登陆 # 编辑文本 Message = "Hello Python,你好 世界" # 准备发送的内容 # msg为字典格式 msg = MIMEText(Message) # 转化为邮件文本 msg["Subject"] = "你好 未来" # 邮件标题 msg["From"] = Sender # 邮件发送者 # 登陆服务器 mailsever = smtplib.SMTP(SMTPsever,25) # 邮件服务器25端口 mailsever.login(Sender,password) # 登陆邮箱 mailsever.sendmail(Sender,["144pknnkl@qq.com"],msg.as_string()) # 第一个参数发送者 第二个参数接收者 第三个文本 mailsever.quit() # 退出服务器 print("发生完成")
网易163邮箱
import smtplib #发邮件 from email.mime.text import MIMEText #邮件文本 SMTPsever="smtp.163.com"#服务器 Sender="wl14454501210@163.com" #发送邮件的地址 password="wl1020021" #登录的授权码 Message="Hello Py子,过来跟哥学python吧,"#发送的内容 msg=MIMEText(Message) #转化邮件文本 msg["Subject"]="你好无恙乎" #邮件标题 msg["From"]=Sender #邮件发送者 # msg["To"]="wl14454501210@163.com" #谁来收 mailsever=smtplib.SMTP(SMTPsever,25)#邮件服务器25端口 mailsever.login(Sender,password)#登陆 mailsever.sendmail(Sender, ["wl14454501210@163.com" ], msg.as_string()) mailsever.quit() print("over")
类方法
import smtplib # 发邮件 from email.mime.text import MIMEText # 邮件文本 class SendMail: def __init__(self, SMTPsever, Sender, password): """ :param SMTPsever: 邮箱服务器 :param Sender: 发送者邮箱 :param password: 登陆授权码 """ self.SMTPsever = SMTPsever # 服务器 self.Sender = Sender # 发送邮件的地址 self.password = password # 使用的是授权码登陆 # 登陆服务器 self.mailsever = smtplib.SMTP(SMTPsever, 25) # 邮件服务器25端口 self.mailsever.login(self.Sender, self.password) # 登陆 def send(self, Message, title, maillist): """ :param Message: 发送的文本 :param title: 文本标题 :param maillist: 接受邮箱连接列表(列表格式) 发送邮件功能 """ msg = MIMEText(Message) # 转化邮件文本 msg["Subject"] = title # 邮件标题 msg["From"] = self.Sender # 邮件发送者 self.mailsever.sendmail(self.Sender, maillist, msg.as_string()) def exit(self): """ 关闭邮件功能 """ self.mailsever.quit() # sender1 = SendMail("smtp.qq.com","1445422222@qq.com","ohvnrwaaufxthfjh") # sender1.send("Hello Python,你好 世界","你好 未来",["1445422222@qq.com"]) # sender1.exit() sender2 = SendMail("smtp.163.com","1445422222@163.com","wl102030") sender2.send("Hello Python,你好 世界","你好 未来",["1445422222@163.com"]) sender2.exit()