用Python讓Outlook自動送信

PythonでOutlookメールを送信する

練習內容

上一篇寫的是Gmai送信,這一篇是以outlook來送信

這邊分成三個階段

  1. 連結mysql,寫出挑選條件,並把選出來條件放入新的串列,我這邊是設定距離上次更新日已經超過 334天,也就是再經過30天就要過期了
  2. 為了防止有多數人再同一天更新,所以用for迴圈去跑全部串列的user並寄信
  3. 定期執行腳本

DB設定

CODE


import mysql.connector
import win32com.client

#MYSQLからdataを収集する

connection = mysql.connector.connect(host="*****",
                                     port="*****",
                                     user="***",                           
                                     password="****", 
                                     auth_plugin="mysql_native_password",
                                     database="***" )    

YEAR_1MON = 334
Limit_day= 365- YEAR_1MON
cusor =connection.cursor()
cusor.execute("SELECT * FROM vendor WHERE  to_days(now())- to_days(renew_date) =334")
records =cusor.fetchall()

to_addr_list = []
to_addr_name = []
to_addr_svlist = []

for r in records:    
    user = [r]    
    name =user[0][1]    
    mail =user[0][4]    
    svmail =user[0][5]    
    to_addr_name.append(name)    
    to_addr_list.append(mail)    
    to_addr_svlist.append(svmail)

#基本設定
outlook = win32com.client.Dispatch("outlook.Application")
mail = outlook.CreateItem(0)

#送信
for i in range(len(to_addr_list)): 

    mail.subject = "セキュリティーカードの更新に関して"     
    mail.to = f"{to_addr_list[i]}" 
    mail.cc = f"{to_addr_svlist[i]}"
    mail.body = f"{to_addr_name[i]} のカードを{Limit_day}日内に更新してください。"
    mail.send()

再去定期執行腳本,這樣就可以自動送信了!

關於Authentication plugin ‘caching_sha2_password’ is not supported錯誤

這邊跟上一個GMAIL送信的差別在於,

我在run程式碼的時候報了一個錯 error:Authentication plugin ‘caching_sha2_password’ is not supported

光是加上auth_plugin=”mysql_native_password”這一段也沒用,

後來重新把mysql-connector卸掉後再重裝就可以了

1.uninstall

pip uninstall mysql-connector

2.uninstall

pip uninstall mysql-connector-python

3.install

pip install mysql-connector-python

以上就可以消除錯誤啦,auth_plugin=”mysql_native_password” 〞這一段沒有也沒關係的!