用Python讓GMAIL自動送信

PythonでGMAILメールを送信する

練習內容

員工的密碼一年必須更新一次,

2020/02/01是員工的入社日,2021/02/01 之前必須要更新密碼,所以在

2021/01/01(一個月前)希望能自動發送通知mail給員工讓他們知道必須更新密碼了,若是員工在2021/01/07日去更新的話,那他明年

2022/01/07前必須再去更新一次!(密碼最後更新日會自動寫入DB)

如果要實現的話

1. 先用MYSQL做一個表

2. 連到mysql

3.每天檢測使用者的最後更新日(新人的話就是入社日)

4.若發現使用者的最後更新日的月份和今天的日期相差(今天-最後更新日)=335天的話

5.系統自動發送mail給職員提醒他更新密碼

我的CODE

import mysql.connector

import smtplibconnection = mysql.connector.connect

(host=”localhost”,                                     port=””,                                     user=”root”,                                     password=””,                                     database=”sql_card” )    

cusor =connection.cursor()

cusor.execute(“SELECT * FROM vendor WHERE  to_days(now())- to_days(renew_date) =334”)

records =cusor.fetchall()

to_addr_list  = []

for r in records:    user = [r]    mail =user[0][4]    

to_addr_list  .append(mail)
from_addr = “@gmail.com”

pwd = input(“%sのパスワードを入力してください” % from_addr)

msg = “Subject:My Mail using python\n\I am nini”mySMPT = smtplib.SMTP(“smtp.gmail.com”,587)

mySMPT.ehlo()mySMPT.starttls()mySMPT.login(from_addr,pwd)

status =mySMPT.sendmail(from_addr,to_addr_list,msg)

if status == {}:   

 print(“成功”)mySMPT.quite()

MYSQL的資料

抓的條件 (“SELECT * FROM vendor WHERE  to_days(now())- to_days(renew_date) =334”)

學MYSQL的話很推這個教學,Python和JS之類也都講得很清楚

https://www.youtube.com/watch?v=gvRXjsrpCHw&t=3223s

gmail設定

送信之前發信人那邊也要設一下安全設置 (gmail)

低安全應用那邊設定成開啟

這邊收到的mail