在Visual Studio Code中用Python发邮件报NameError错如何解决
报错原因
Python运行时会把未加引号的myemailaddress@gmail.com识别为变量名,但你代码里仅定义了存储该邮箱地址的变量SenderAddress,没有定义名为myemailaddress的变量,因此触发未定义变量的NameError。
修复方案
有两种修改方式,推荐使用第一种,避免重复硬编码邮箱地址:
- 方案1:直接调用已定义的发件人地址变量
把第16行代码修改为:
server.sendmail(SenderAddress, email, body)
- 方案2:给邮箱地址添加引号,将其识别为字符串字面量
把第16行代码修改为:
server.sendmail("myemailaddress@gmail.com", email, body)
修改后完整可运行代码示例(采用方案1):
import pandas as pd import smtplib SenderAddress = "myemailaddress@gmail.com" password = "mypassword" e = pd.read_excel("emails.xlsx") emails = e['email'].values server = smtplib.SMTP("smtp.gmail.com", 587) server.starttls() server.login(SenderAddress, password) msg = "Hello this is a email form python" subject = "Hello world" body = "Subject: {}\n\n{}".format(subject, msg) for email in emails: server.sendmail(SenderAddress, email, body) server.quit()
内容的提问来源于stack exchange,提问作者Coder
相关产品推荐
相关产品推荐

