Introduction to Python Applications 2021 - Lecture ? === ###### tags: `Python` `Python and Its Application 2021` ## Sending E-mail from Your NYCU Account ### 取得寄信用密碼 登入 Gmail  選擇安全性  啟動二階段認證後,選擇應用程式密碼。  選擇其他,並自訂名稱。  取得可用來寄信的密碼。建議用完後刪除。  ## 基本寄信範例 先養成好習慣,將帳號密碼用另外一個本地檔案存放,例如在 PyCharm 中另開一個檔案叫 `mysecret.py` : ```python= # 帳號密碼 account = "mzshieh@nycu.edu.tw" password = "xhqqojzofcteytet" ``` 接下來使用以下範例程式: ```python= from email.mime.text import MIMEText from smtplib import SMTP from mysecret import account, password # 帳號密碼如果不用 mysecret 就用下面的兩行,但會隨著程式碼散布你的帳密 # account = "mzshieh@nycu.edu.tw" # password = "xhqqojzofcteytet" # 收件人 receiver = "mzhsieh@csie.nctu.edu.tw" # 寄件人 sender = "mzshieh@nycu.edu.tw" # 標題與訊息 subject = "Python應用概論期末專題繳交期限" message = """原定 2021/06/17 截止,如需延長,請來信說明何時繳交。<br/> 除非有授課老師認可之重大變故,不得晚於2021/06/25。<br/><br/> 授課老師謝旻錚""" # 信件格式設定 msg = MIMEText(message, "html") msg["Subject"] = subject msg["To"] = receiver msg["From"] = sender # 寄信部分 # 連線到 Gmail 寄信伺服器 server = SMTP("smtp.gmail.com", 587) # 啟動安全連線 server.starttls() # 登入:如無申請應用程式密碼,將無法順利登入。 server.login(account, password) # 送信:真的要送的時候,要把下面的註解取消 # server.send_message(msg) # 斷線 server.quit() ``` ## 客製化寄信範例 使用本範例程式,需準備一個 `students.csv` 作為姓名與 Email address 的對照表,格式大概如下: ```csv= 大學生,mzhsieh@csie.nctu.edu.tw 碩士生,truckski.cs93g@nctu.edu.tw ``` 範例程式如下 ```python= from email.mime.text import MIMEText from smtplib import SMTP from mysecret import account, password # 帳號密碼如果不用 mysecret 就用下面的兩行,但會隨著程式碼散布你的帳密 # account = "mzshieh@nycu.edu.tw" # password = "xhqqojzofcteytet" # 開學生資料CSV檔案 with open('students.csv', encoding='utf8') as FILE: # 每個學生執行一次 for line in FILE: # 取得收件人姓名與 E-mail address name, address = line.strip().split(",")[:2] # 收件人 receiver = address # 寄件人 sender = "mzshieh@nycu.edu.tw" # 標題與訊息:可針對不同收信人客製化內容 subject = "Python應用概論期末專題繳交期限" message = f"""{name}同學您好,<br/><br/> 原定 2021/06/17 截止,如需延長,請來信說明何時繳交。<br/> 除非有授課老師認可之重大變故,不得晚於2021/06/25。<br/><br/> 授課老師謝旻錚""" # 信件格式設定 msg = MIMEText(message, "html") msg["Subject"] = subject msg["To"] = receiver msg["From"] = sender # 寄信部分 # 連線到 Gmail 寄信伺服器 server = SMTP("smtp.gmail.com", 587) # 啟動安全連線 server.starttls() # 登入:如無申請應用程式密碼,將無法順利登入。 server.login(account, password) # 送信提示: print(f"Sending to {name}: {address}") # 送信:真的要送的時候,要把下面的註解取消 # server.send_message(msg) # 斷線 server.quit() ```
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.