我正在開發一個製作我自己的即時消息程序的項目,即使沒有圖形或任何東西,也只是爲了瞭解Python中的內置模塊。 在這裏,我試圖編寫一個代碼,用戶將輸入用戶所需的用戶名和密碼,然後將發送一封電子郵件給用戶,該電子郵件將包含一個12個字符的隨機字符串,用戶將輸入回程序。不知何故,當我運行代碼時,我的整個計算機都凍結了! 下面的代碼:在Python中發送一封包含SMTP的電子郵件
import smtplib
SMTPServer = smtplib.SMTP("smtp.gmail.com",587)
SMTPServer.starttls()
SMTPServer.login(USERNAME, PASSWORD)*
userEmail = raw_input("Please enter your e-mail: ")
if verifyEmail(userEmail) == False:
while True:
userEmail = raw_input("Error! Please enter your e-mail: ")
if verifyEmail(userEmail) == True:
break
randomString = generateRandomString()
message = """From: From Person <%s>
To: To Person <%s>
Subject: Ido's IM Program Registration
Your registration code is: %s
""" %(SERVEREMAIL, userEmail, randomString)
try:
smtpObj = smtplib.SMTP('localhost')
smtpObj.sendmail(SERVEREMAIL, userEmail, message)
print "Successfully sent email"
except smtplib.SMTPException:
print "Error: unable to send email"
inputString = raw_input("Input generated code sent: ")
你不得不使用它來發送電子郵件。而是使用'localhost'創建一個新的SMTP連接並使用它。您是否真的在運行此腳本的計算機上運行郵件服務器? – kindall
我一定誤解了SMTP的工作方式,您的意思是我應該刪除'smtpObj = smtplib.SMTP('localhost')'並將下一行更改爲'SMTPServer.sendmail(SERVEREMAIL,userEmail,message)',因爲當我編寫'SMTPServer = smtplib.SMTP(「smtp.gmail.com」,587)''時,我已經創建了服務器? –
除非您真的在與腳本相同的計算機上運行SMTP服務器,否則這聽起來像是一件好事。 – kindall