繁体   English   中英

Python-通过Gmail服务器发送电子邮件

[英]Python - sending an email through gmail servers

当我在IDLE中输入以下代码时,它可以正常工作:

>>> import smtplib
>>> smtpObj = smtplib.SMTP('smtp.gmail.com', 587)
>>> smtpObj.ehlo()
>>> smtpObj.starttls()
>>> smtpObj.login("email", "password")
>>> smtpObj.sendmail("email", "email2", "Subject: Test \nsent with python!")
>>> smtpObj.quit()

但是,当我尝试使用该程序制作程序以便于发送电子邮件时,它给了我一个语法错误(错误在每边带有两个*):

import smtplib

smtpObj = smtplib.SMTP('smtp.gmail.com', 587)
smtpObj.ehlo()
smtpObj.starttls()

email = input("What is your email?: ")
password = input("What is your password?: ")

**smtpObj**.login(email, password)

print ("From: " + email)
to = input("To: ")
subject = input("Subject: ")
message = input("Message: \n")

smtpObj.sendmail(email, to, subject + message)

print ("Email sent successfuly!!!")

smtpObj.quit()

如果您使用的是Python 2,请使用raw_input代替input

根据官方文档:

输入([提示])

相当于eval(raw_input(prompt))。

此功能不会捕获用户错误。 如果输入语法无效,则会引发SyntaxError。 如果评估期间出现错误,可能会引发其他异常。

在Python 3中,只有input

无论如何,您不会在输入的'password'关闭括号

您在SyntaxError之前的行上缺少右括号。 它应该是:

password = input("What is your password?: ")

我很舒服地说Python中SyntaxError的最常见原因是缺少括号。 对于许多初学者来说,有点困惑的是,在这种情况下, SyntaxError在实际错误之后显示在行上。 请记住这一点,并始终确保括号匹配。

好的,经过一番研究后,我发现:

我遇到的错误之一是告诉我导入email.utils。 当我尝试不起作用时。 然后我发现我的文件名为email.py,这意味着它试图导入错误的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM