1
我開始再次使用Python,並且遇到了如何處理函數中的參數異常的問題。說有人不輸入toaddr
或fromaddr
或subject
或body
。或者他們輸入fromaddr
而不是toaddr
。我如何知道他們是否正在接受或來自?說我這樣做:函數參數的異常處理
SendMail('', [email protected], Message, message body)
這工作監守,我提供了所有的arugments,但是如果我離開toaddr
空白,我得到不夠要求的錯誤。
我不認爲我解釋這很好:(
我的功能是這樣的:
def SendMail(toaddr, fromaddr, subject, body, attach=False):
# create a MIME(Multipurpose Internet Mail Extension)
msg = MIMEMultipart()
# assign toaddr, fromaddr and subject to lists
msg['To'] = toaddr
msg['From'] = fromaddr
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
# attach a file if set to true
if attach == True:
filename = raw_input('fullpath/filename.extension>>> ')
attachment = open(filename, "rb")
part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % filename)
msg.attach(part)
# establish connection to smtp server and send mail
try:
print('Sending Mail')
server = smtplib.SMTP('mail.server.com', 25)
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()
print('Mail Sent!')
except smtplib.SMTPException:
print("Could not send mail")
pass
except smtplib.socket.error:
print("Could not connect to server")
pass
它沒我看得很清楚,但一切都在這個功能之下。 – NineTail