【发布时间】:2023-04-10 20:39:02
【问题描述】:
我正在 Python3 中试验smtplib。
我想将变量的内容发送到电子邮件地址。如果有smtplib.SMTPAuthenticationError,我想将该变量发送到另一个电子邮件地址。这有效(见下面的代码)。但是如果我想添加第三个电子邮件地址(如果前两个由于某种原因失败)怎么办?
我不认为try 和except 允许我添加另一个相同代码块(具有不同的电子邮件登录详细信息)。
我知道使用subprocess,可以获取变量的returncode,然后使用if。
例如:
result = subprocess.run(["ls", "-al"], capture_output = True)
if result !=0:
do_something_to_list_the_directory
如果不使用subprocess,我不知道如何做到这一点。有人可以请教吗?
代码如下:
try:
mail_sending_attempt = smtplib.SMTP("smtp_provider", 587)
mail_sending_attempt.starttls()
mail_sending_attempt.login(send, passinfo) ### this will not work
mail_sending_attempt.sendmail(send, receive, message)
mail_sending_attempt.quit()
except Exception:
mail_sending_attempt = smtplib.SMTP("smtp_provider", 587)
mail_sending_attempt.starttls()
mail_sending_attempt.login(send2, passinfo2) ### this will not work
mail_sending_attempt.sendmail(send2, receive2, message)
mail_sending_attempt.quit()
【问题讨论】:
-
为什么不在第一个
except块中使用嵌套的try-except?看到这个问题:stackoverflow.com/questions/17015230/…
标签: python python-3.x smtplib return-code