我的键盘记录器在线程 Thread-25 中出现异常 Python

Exception in thread Thread-25 with my keylogger Python

我有这个远程键盘记录器,一开始它可以正常发送电子邮件,但几分钟后它停止发送电子邮件并抛出这个错误:

Exception in thread Thread-25:
Traceback (most recent call last):
  File "C:\Users\Lisandro0\AppData\Local\Programs\Python\Python37\lib\threading.py", line 926, in _bootstrap_inner
    self.run()
  File "C:\Users\Lisandro0\AppData\Local\Programs\Python\Python37\lib\threading.py", line 1177, in run
    self.function(*self.args, **self.kwargs)
  File "C:\Users\Lisandro0\Desktop\Desktop3\keylogger\crack.py", line 64, in report
    self.sendmail(EMAIL_ADDRESS, EMAIL_PASSWORD, self.log)
  File "C:\Users\Lisandro0\Desktop\Desktop3\Keylogger\crack.py", line 53, in sendmail
    server.sendmail(email, email, message)
  File "C:\Users\Lisandro0\AppData\Local\Programs\Python\Python37\lib\smtplib.py", line 855, in sendmail
    msg = _fix_eols(msg).encode('ascii')
UnicodeEncodeError: 'ascii' codec can't encode character '\xf1' in position 312: ordinal not in range(128)

我希望能阅读代码,因为它很短。

感谢任何帮助

错误信息很清楚:

...Python37\lib\smtplib.py...UnicodeEncodeError: 'ascii' codec can't encode character '\xf1' in position 312: ordinal not in range(128)

smtplib 似乎在编码您的邮件内容时遇到问题。

我阅读了一些源代码。在 smtplib.py:

    def sendmail(self, from_addr, to_addrs, msg, mail_options=(),
                 rcpt_options=()):
        """This command performs an entire mail transaction.

        The arguments are:
            - from_addr    : The address sending this mail.
            - to_addrs     : A list of addresses to send this mail to.  A bare
                             string will be treated as a list with 1 address.
            - msg          : The message to send.
            - mail_options : List of ESMTP options (such as 8bitmime) for the
                             mail command.
            - rcpt_options : List of ESMTP options (such as DSN commands) for
                             all the rcpt commands.

        msg may be a string containing characters in the ASCII range, or a byte
        string.  A string is encoded to bytes using the ascii codec, and lone
        \r and \n characters are converted to \r\n characters.

看这里:

msg may be a string containing characters in the ASCII range, or a byte string

如果要发送non-ascii个内容的邮件,可以先将内容编码成字节串。

(顺便说一句,如果我没猜错的话,你的题有点跑题了,没有抓住问题的重点。)