我们可以在 python 程序中多次使用带有某些参数的用户定义函数吗?
Can we use a user defined function with some parameters, multiple times in a python program?
我想在我的 python 程序中针对不同的情况发送邮件,但是我的 'message' (检查程序)在每种情况下都不同,我该如何解决这个问题?
我想每次使用相同的用户定义函数发送带有不同消息的邮件,即 sendmail(mail,message)
def sendmail(mail,message):
port = 587 # For starttls
smtp_server = "smtp.gmail.com"
sender_email = "something@gmail.com"
receiver_email = mail
password = 'password123'
context = ssl.create_default_context()
with smtplib.SMTP(smtp_server, port) as server:
server.ehlo() # Can be omitted
server.starttls(context=context)
server.ehlo() # Can be omitted
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
message = f"""\ #my first message
Subject: Use OTP {no} Dear {extname(am1)},
Use OTP {no} to access your account.
Don't share it with someone else. """
sendmail(mail,message)
message = f'''\ #my second message
Subject: ZABANK: Current Balance
Dear {extname(am1)},
Your current balance is {extbal(am1)} rupees. '''
sendmail(mail,message)
我最后两次收到第一条消息。
此处不需要 mail,因为它是分配给另一个用户定义函数的变量。
您不能调用该功能两次,因为它需要同时登录两次 SMTP,
当您已经登录时正在登录您的帐户(因此不会发送第二条消息)。你可以通过迭代你的消息列表来克服这个问题
#please change your funtion name to avoid collision with the smtp.SMTP.sendmail method
def usersendmail(mail,message):
port = 587 # For starttls
smtp_server = "smtp.gmail.com"
sender_email = "something@gmail.com"
receiver_email = mail
password = 'password123'
context = ssl.create_default_context()
with smtplib.SMTP(smtp_server, port) as server:
server.ehlo() # Can be omitted
server.starttls(context=context)
server.ehlo() # Can be omitted
server.login(sender_email, password)
for msg in messagelist:
server.sendmail(sender_email, receiver_email, msg)
usersendmail("them@gmail.com",["mymessage1","mymessage2"])
我想在我的 python 程序中针对不同的情况发送邮件,但是我的 'message' (检查程序)在每种情况下都不同,我该如何解决这个问题? 我想每次使用相同的用户定义函数发送带有不同消息的邮件,即 sendmail(mail,message)
def sendmail(mail,message):
port = 587 # For starttls
smtp_server = "smtp.gmail.com"
sender_email = "something@gmail.com"
receiver_email = mail
password = 'password123'
context = ssl.create_default_context()
with smtplib.SMTP(smtp_server, port) as server:
server.ehlo() # Can be omitted
server.starttls(context=context)
server.ehlo() # Can be omitted
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
message = f"""\ #my first message
Subject: Use OTP {no} Dear {extname(am1)},
Use OTP {no} to access your account.
Don't share it with someone else. """
sendmail(mail,message)
message = f'''\ #my second message
Subject: ZABANK: Current Balance
Dear {extname(am1)},
Your current balance is {extbal(am1)} rupees. '''
sendmail(mail,message)
我最后两次收到第一条消息。 此处不需要 mail,因为它是分配给另一个用户定义函数的变量。
您不能调用该功能两次,因为它需要同时登录两次 SMTP, 当您已经登录时正在登录您的帐户(因此不会发送第二条消息)。你可以通过迭代你的消息列表来克服这个问题
#please change your funtion name to avoid collision with the smtp.SMTP.sendmail method
def usersendmail(mail,message):
port = 587 # For starttls
smtp_server = "smtp.gmail.com"
sender_email = "something@gmail.com"
receiver_email = mail
password = 'password123'
context = ssl.create_default_context()
with smtplib.SMTP(smtp_server, port) as server:
server.ehlo() # Can be omitted
server.starttls(context=context)
server.ehlo() # Can be omitted
server.login(sender_email, password)
for msg in messagelist:
server.sendmail(sender_email, receiver_email, msg)
usersendmail("them@gmail.com",["mymessage1","mymessage2"])