Python smtplib.SMTP_SSL() 登入郵箱併發送郵件
由於個人比較懶,每次寫郵件時總要去開啟郵箱地址然後登入,有的時候還容易忘記密碼,感覺很不方便,於是就想寫一個在txt檔案中寫內容,然後直接讀取,執行指令碼檔案,直接傳送內容。
還有很多需要改進的地方,如上傳下載檔案等,接收檔案提醒,閱讀檔案內容等。還有一些配置內容也不是很方便。
py檔案如下:
# !/usr/bin/python # -*-coding:utf-8-*- import smtplib from email.mime.text import MIMEText def send_email(host, username, passwd, send_to, subject, content): msg = MIMEText(content) my_email = username+"<"+username+">" msg['From'] = my_email msg['Subject'] = subject msg['To'] = ",".join(send_to) try: # server = smtplib.SMTP() # server.connect(host) server = smtplib.SMTP_SSL(host,465) server.ehlo() # server.starttls() server.login(username, passwd) ###第一種方法寫的時候遇到了困難,問題沒有是有strip(),因為此處使用了 msg.as_string(),應該是將內容轉化成了str,然後又進行的處理 server.sendmail(username, send_to, msg.as_string()) server.close() return 'sucessfully' except Exception as e: print 'Exception: send email failed', e return 'failed to send mail' if __name__ == '__main__': filename = "emails_txt" f = open(filename) lines = f.readlines() # file = f.read() #######################方法1############ ###此種方法是在txt檔案中配置內容和寫檔案內容 host ="smtp.qq.com" username = lines[1].split(':')[-1].strip() # # host = "smtp." + str(username.split('@')[-1]) passwd = lines[2].split(':')[-1].strip() to_list = lines[3].split(':')[-1].strip().split(',') subject = lines[4].split(':')[-1].strip() content = lines[5].split(':')[-1] # print type(passwd), passwd # print type(to_list), to_list # print type(subject), subject # print type(content), content send_email(host, username, passwd, to_list, subject, content) #######################方法2############ ###下面這種方法是在程式中直接寫內容,一旦檔案內容比較多的時候,就很不適合使用了 """ host = 'smtp.qq.com' username = '
[email protected]' #此password為進入QQ郵箱設定頁面,開啟SMTP服務,發簡訊獲取的授權碼,而非通常我們使用的password passwd = 'zcgmkptvlzqgfcef' to_list = ['[email protected]','[email protected]'] subject = "txt檔案傳送郵件" content = "用python傳送郵件" content = file # print type(passwd), passwd # print type(to_list), to_list # print type(subject), subject # print type(content), content if send_email(host, username, passwd, to_list, subject, content): print "done!" else: print "failed!" """
txt檔案
host:smtp.qq.com
username:[email protected]
passwd:zcgmkptvzlqgfcff
to_list:[email protected],[email protected]
subject:這個郵件
content:試試能行不
參考學習連結:https://www.programcreek.com/python/example/6443/smtplib.SMTP_SSL。
https://blog.csdn.net/zniahfag/article/details/51387996。