打开邮箱的smtp和pop3服务生成授权码(第三方登陆时使用)
简单文本文件邮箱发送
#需要用到内置smtplib模块
from email.mime.text import MIMEText
import smtplib
#邮件对象
def message():
msg = MIMEText('content','plain','utf-8')
msg['From'] = '[email protected]'
msg['To'] = '[email protected]'
msg['Subject'] = 'subject'
return msg
#发送邮件函数
def sendmail():
try:
smtpObj = smtplib.SMTP('smtp.qq.com')
smtpObj.login('[email protected]','授权码')
msg = message()
smtpObj.sendmail('[email protected]','[email protected]',msg.as_string())
except smtplib.SMTPException as e:
print('邮件发送失败...',e)
else:
print('邮件发送成功...')
sendmail()
message=MIMEText('content','plain','utf-8‘)
中的plain改为htmlfrom email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
import email
import imapclient
#在登陆时遇到LOGIN error问题
# 在http://config.mail.163.com/settings/imap/login.jsp?uid=自己的账户@163.com 里进行安全设置
#建立连接
conn= imapclient.IMAPClient(host='imap.163.com',ssl='True')
print('连接服务器成功..')
#登陆用户
conn.login('[email protected]','redhat111')
print('用户登陆成功...')
#连接收件箱 参数INBOX 第二个参数为提取方式为只读
conn.select_folder('INBOX',readonly=False)
#在收件箱中查找未读的邮件 参数为邮件的状态 返回值为所有未读邮件的编号
result=conn.search("Recent")
#通过fetch()函数 查看邮件的信息 返回值为一个多重嵌套字典 包含邮件id和邮件的所有信息
msgdict=conn.fetch(result,['BODY.PEEK[]'])
#conn.set_flags(msgdict,b'SEEN',silent=False)
# print(msgdict)
#解析邮件内容
#遍历提取邮件内容主题和发送人
for message_id, message in msgdict.items():
e = email.message_from_string(str(message[b'BODY[]'],encoding='utf8'))
print(e)
#subject = email.header.make_header(email.header.decode_header(e['SUBJECT']))
mail_from = email.header.make_header(email.header.decode_header(e['From']))
print(mail_from)