簡體   English   中英

使用Python自動執行SMTP

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM