欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 自動監(jiān)控最新郵件并讀取的操作

 更新時間:2021年03月08日 10:54:30   作者:姜小丫  
這篇文章主要介紹了python 自動監(jiān)控最新郵件并讀取的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說了,大家還是直接看代碼吧~

#zmail庫:可以用幾行代碼幫我們收取一封郵件
import zmail
#輸入賬號和密碼
server=zmail.server('13163964546@qq.com','jie110341')
#獲取最新的一封郵件
mail=server.get_latest()
#讀取郵件
#zmail.show(mail)
#讀取郵件的部分內容
print(mail['subject'])
......
#讀取附件 郵件 存放路徑 如果有同名文件則覆蓋
zmail.save_acctachment(mail,target_path=None,overwrite=True)

需要在電腦上下載zmail庫

補充:Python郵箱實施監(jiān)控電腦

我就廢話不多說了,大家還是直接看代碼吧~

import smtplib
import poplib
import email
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import decode_header
def send_email(account, password, email_title, send_text="", file_names=None, file_dir="."):
  msg = MIMEMultipart()
  # msg = MIMEText(HTML, 'html') -- 只能發(fā)送文本內容
  content = MIMEText(send_text, "plain", "utf-8")
  msg.attach(content)
  # 文件類型
  if isinstance(file_names, list):
    for file_name in file_names:
      send_file_path = file_dir + "/" + file_name
      part = MIMEApplication(open(send_file_path, 'rb').read())
      part.add_header('Content-Disposition', 'attachment', filename=file_name)
      msg.attach(part)
  elif isinstance(file_names, str):
    send_file_path = file_dir + "/" + file_names
    part = MIMEApplication(open(send_file_path, 'rb').read())
    part.add_header('Content-Disposition', 'attachment', filename=file_names)
    msg.attach(part)
  # msg['from'],msg['to']接收端顯示的發(fā)件人與收件人
  msg['from'] = "奧巴馬@163.com"
  msg['to'] = account
  msg['subject'] = email_title
  try:
    server = smtplib.SMTP()
    server.connect('smtp.163.com')
    server.login(account, password)
    # from_addr:發(fā)送地址; to_addrs:接收地址(字符串列表)
    server.sendmail(account, msg['to'].split(), msg.as_string())
  except Exception as e:
    print(e)
# 獲取郵件標題
def get_email_subject(addr, password):
  # 設置連接網(wǎng)址,獲取pop3協(xié)議的郵件讀取對象
  read = poplib.POP3('pop.163.com', timeout=3600)
  # 輸入郵件地址與郵件登錄密碼
  read.user(addr) # 163郵箱用戶名
  read.pass_(password) # 163郵箱設置中的客戶端授權密碼
  # allEmails = (totalNum, totalSize)
  # 讀取郵件信息(郵件總數(shù),郵件尺寸)
  total_num, total_size = read.stat()
  # top(which,howmuch)
  # 獲取最新的一封郵件(第幾封郵件,獲取多少封)
  top_email = read.top(total_num, 1)
  # print("***** start *****\n接收的數(shù)據(jù)為: {}\n***** end *****\n".format(top_email))
  #
  # print("***** start *****\n[解碼前]獲取的初始郵件內容: {}\n***** end *****\n".format(top_email[1]))
  # 解碼郵件信息,將解碼后的郵件信息存入tmp
  tmp = []
  for s in top_email[1]:
    tmp.append(s.decode())
  # print("***** start *****\n[解碼后]的郵件內容為: {}\n*****  end  *****\n".format(tmp))
  # 將解碼后的郵件內容拼接為字符串
  email_str = '\n'.join(tmp)
  # 將字符串類型解析為Message類型
  message = email.message_from_string(email_str)
  # print("***** start *****\n"
  #    "[解碼前]的郵件字符串內容為: [數(shù)據(jù)類型]{}\n{}\n"
  #    "--------------------------------------------\n"
  #    "[解碼后]的郵件字符串內容為: [數(shù)據(jù)類型]{}\n{}\n"
  #    "***** end *****\n"
  #    .format(type(email_str), email_str, type(message), message))
  # 獲取郵件主題
  subject_str = message['subject']
  # print("***** start *****\n[解碼前]郵件標題: {}\n***** end *****\n".format(subject_str))
  subject = decode_header(subject_str)
  # print("***** start *****\n[解碼后]郵件標題: {}\n***** end *****\n".format(subject))
  content = subject[0][0]
  enc_type = subject[0][1]
  if enc_type:
    subject_decode = content.decode(enc_type)
  else:
    subject_decode = content
  return subject_decode, read, total_num

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關文章

最新評論