import smtplib
from email.mime.text import MIMEText
from email.header import Header
# come_from 是自己的邮箱,password是邮箱的授权码
come_from = '2577452716@qq.com'# who 用户是谁 ,相当于用户名。
password = 'jgodszkzfkrqebeb' # 秘钥串 ,相当于密码。
# to_email 是接收的邮箱
to_email = '2435224077@qq.com' # 我要发送给谁
# 邮件服务器
smtp_server = 'smtp.qq.com' #我们自己不搭建了,有免费的还稳定,出了事情都能找服务商, QQ邮箱的服务域名
# infos = "你是大傻子" # 我们要发送的内容
# 里边写需要发送的html内容
infos = '<html><body><h1>my name is liuhui</h1><a href="https://www.baidu.com">这是一个连接</a></body></html>'
# 邮箱正文,第一个参数为内容,第二个参数为格式,默认为纯文本,第三个参数是编码
# 这里我用把发送内容赋值给变量infos
# msg = MIMEText(infos, 'plain', 'utf-8')
# 这里我用把发送内容赋值给变量infos 发送html需要把第二个参数改为html
msg = MIMEText(infos, 'html', 'utf-8')
# 邮件头部信息
msg['From'] = Header(come_from)
# 发送给谁
msg['To'] = Header(to_email)
# 邮件主题
msg['Subject'] = Header('1908大实训')
# 创建实例
server = smtplib.SMTP_SSL(smtp_server)
# QQ邮箱SMTP的端口号是465或587
server.connect(smtp_server, 465)
# 登录邮箱
server.login(come_from, password)
# 发送邮件
server.sendmail(come_from, to_email, msg.as_string())
print("发送完成")
# 退出邮箱
server.quit()
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
class SendEmail(object):
# 构建函数, 初始化基本信息
def __init__(self, host, user, password):
# 邮箱按照@分隔
infos = user.split("@")
# 把user赋值给_user
self._user = user
# 取qq号
self._account = infos[0]
# 来自谁 拼接邮箱
self._me = self._account + "<" + self._user + ">"
# 创建对象
server = smtplib.SMTP()
self._server = server
# 建立发送对象
server.connect(host)
# 登录邮箱
server.login(self._account, password)
def sendMail(self, to_email, sub, content, subtype='plain'):
msg = MIMEText(content, _subtype=subtype, _charset='utf-8')
# 邮件主题
msg['Subject'] = sub
# 邮件头部信息
msg['From'] = self._me
# 发给谁
msg['To'] = ';'.join(to_email)
try:
self._server.sendmail(self._me, to_email, msg.as_string())
return True
except Exception as e:
print(str(e))
return False
def __del__(self):
self._server.quit()
self._server.close()
if __name__ == '__main__':
mail = SendEmail('smtp.qq.com', '2577452716@qq.com', 'jgodszkzfkrqebeb')
to_mail = ['2577452716@qq.com', '2435224077@qq.com']
if mail.sendMail(to_mail, "测试邮件", "hello world!<br><br><h1>你好,发送文本文件测试<h1>"):
print("发送成功")
else:
print("发送失败")