1. 程式人生 > 其它 >python 定時傳送郵件

python 定時傳送郵件

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)