我的键盘记录器在线程 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个内容的邮件,可以先将内容编码成字节串。
(顺便说一句,如果我没猜错的话,你的题有点跑题了,没有抓住问题的重点。)
我有这个远程键盘记录器,一开始它可以正常发送电子邮件,但几分钟后它停止发送电子邮件并抛出这个错误:
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个内容的邮件,可以先将内容编码成字节串。
(顺便说一句,如果我没猜错的话,你的题有点跑题了,没有抓住问题的重点。)