PythonでOutlookメールを送信する
練習內容
上一篇寫的是Gmai送信,這一篇是以outlook來送信
這邊分成三個階段
- 連結mysql,寫出挑選條件,並把選出來條件放入新的串列,我這邊是設定距離上次更新日已經超過 334天,也就是再經過30天就要過期了
- 為了防止有多數人再同一天更新,所以用for迴圈去跑全部串列的user並寄信
- 定期執行腳本
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” 〞這一段沒有也沒關係的!