I have this remote keylogger and it works fine at first to send the emails but after a few minutes it stops sending emails and it throws me this error:
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)
I would appreciate reading the code as it is short.
I appreciate any help
The error message is clear:
...Python37\lib\smtplib.py...UnicodeEncodeError: 'ascii' codec can't encode character '\xf1' in position 312: ordinal not in range(128)
It seems that smtplib has problem encoding your mail content.
I did some source code reading. In 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.
Look here:
msg may be a string containing characters in the ASCII range, or a byte string
If you want to send mail of non-ascii content, you can encode the content into a byte string first.
(By the way, if I got it right, your question title is somewhat off the point, failing to grasp the key of your problem.)