使用Python发送电子邮件

时间:2016-11-21 18:51:21

标签: python email crash smtp smtplib

我正在制作一个制作我自己的即时消息程序的项目,即使没有图形或任何东西,只是为了了解python中的内置模块。 在这里,我尝试编写一个代码,用户将输入用户想要的用户名和密码,然后将发送一封电子邮件(给用户),其中包含一个12个字符的随机字符串,用户将将其输入程序。不知何故,当我运行代码时,我的整个计算机都冻结了! 这是代码:

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: ")

2 个答案:

答案 0 :(得分:0)

这是smtp客户端的一个工作示例。 你的代码在哪里阻止?

onBackPressed()

答案 1 :(得分:0)

这对我有用!

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import Encoders

gmail_user = 'example@hotmail.com'
gmail_pwd = 'somepassword'
subject = 'HEY'
text = 'Some text here'

msg = MIMEMultipart()
msg['From'] = gmail_user
msg['To'] = gmail_user
msg['Subject'] = subject

msg.attach(MIMEText(text))

part = MIMEBase('application', 'octet-stream')

Encoders.encode_base64(part)

mailServer = smtplib.SMTP("smtp.live.com", 587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(gmail_user, gmail_pwd)
mailServer.sendmail(gmail_user,gmail_user, msg.as_string())
mailServer.close()