[英]Automate SMTP Using Python
我剛剛開始使用python自動通過gmail發送電子郵件。 我已經完成了整個過程,只需直接在命令行中輸入即可,但是現在我想使過程自動化(即,定期發送電子郵件)。 我已經開始工作了第一部分,在那里我與SMTP服務器建立了連接。
os.system("openssl s_client -starttls smtp -connect smtp.gmail.com:587 -crlf -ign_eof")
現在,我想獲取它,以便它將在該連接中鍵入並運行以下命令:
os.write("HELO", os.linesep)
os.write("AUTH LOGIN", os.linesep) ... And so on
我已經使用write命令和os.system命令進行了嘗試,但是似乎都沒有實際將文本插入此窗口中。 也許擁有更多Linux和終端技能的人可以提供幫助嗎? 另外,當所有這些系統進程都在運行時,time.sleep似乎不起作用。 我該如何解決?
我將使用標准庫中的SMTP客戶端實現: http : //docs.python.org/3/library/smtplib
import smtplib
smtp_client = smtplib.SMTP('smtp.gmail.com', 587)
smtp_client.starttls()
smtp_client.login(username, password)
如果您正在使用2要素身份驗證,則需要創建一個應用程序專用密碼才能使用。
您應該查看子流程模塊以執行所需的操作。 您不僅可以“ os.write”,還需要“寫入”流程的標准輸入和輸出。
command = ['openssl', 's_client', '-starttls smtp', '-connect smtp.gmail.com:587', '-crlf', '-ign_eof']
p = subprocess.Popen(command, stdin=PIPE) # Success!
p.write("HELO", "MYNAME")
等等
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.