python 定時傳送郵件
阿新 • • 發佈:2022-01-02
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header def send_email(sender, receiver, text, subject): """ 傳送純文字郵件 :param sender: :param receiver: :param text: :param subject: :return: """ mail_host= 'smtp.qq.com' # qq郵箱服務地址 smt = smtplib.SMTP() # #例項化SMTP類,這樣就可以呼叫SMTP物件的方法和屬性 smt.connect(mail_host, '25') # 連線伺服器,第二個引數為埠號 password = "mmmmmm" # 郵箱登入密碼(需要進入qq郵箱->設定->賬號->獲取密碼) try: smt.login(sender, password) # 登入郵箱,第一引數是發件人郵箱賬號、第二個為郵箱登入密碼 message = MIMEText(text, 'plain', 'utf-8') # 例項化一個MIMEText郵件物件,該物件需要寫進三個引數,分別是郵件正文,文字格式和編碼 message['Subject'] = Header(subject, 'utf-8') # 郵件標題 try: smt.sendmail(sender, receiver, message.as_string()) # 傳送郵件操作 print("郵件傳送成功") except: print("郵件傳送失敗") except:print("登入失敗,請檢測郵箱、密碼是否正確") smt.quit() # 退出郵箱
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header def send_file(sender, receiver, file, subject): """ 傳送帶附件的郵件 :param sender: :param receiver: :param data: :param subject: :return: """ addr = 'smtp.qq.com' smt = smtplib.SMTP() smt.connect(addr, '25') password = "mmmmmm" smt.login(sender, password) message = MIMEMultipart() message['Subject'] = Header(subject, 'utf-8') message['From'] = Header(sender, 'utf-8') message['To'] = Header(receiver, 'utf-8') message.attach(MIMEText("最近一週天氣情況", 'plain', 'utf-8')) att1 = MIMEText(open(file, 'rb').read(), 'base64', 'utf-8') att1['Content-Type'] = 'application/octet-stream' att1["Content-Disposition"] = 'attachment, filename="weather.txt' message.attach(att1) smt.sendmail(sender, receiver, message.as_string())
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header import schedule import time def job(): """ 定時傳送郵件 :return: """ file = writer_data(get_data()) send_file(sender, receiver, file, subject) schedule.every(2).minutes.do(job) while True: schedule.run_pending() time.sleep(2)