This script will check current logged user folder for media and save those file name as .log file with the user name.
For example:
current user is "joey"
log file name will be joey.log
Run this script as system user
Edit Email recipients and smtp details
emailto =['xyz@gmail.com','pqr@gmail.com']
emailfrom = "yyyyyy@gmail.com"
password = "12345678"
smtpserver='smtp.gmail.com'
port=587
emailto=['XXXXXX'] # Provide an email where want to send CSV file.
emailfrom='XXXXXX' # Provide a valide from email.
password='XXXXXX' # Provide the correct password for your from mail.
smtpserver=r'smtp.gmail.com' # Provide a valid server
port=587 #Provide a valid port number
sendmail=0 ## [1 sends mail or 0 does not send mail] if sendmail=1 then user have to set the required information to send out a email from the code.
msgbody=r'''Hi
Please find the attachment for the User media log file
Thank you.'''
import os
import re
import random
import socket
import smtplib
import mimetypes
import ctypes
from email.mime.multipart import MIMEMultipart
from email import encoders
from email.message import Message
from email.mime.audio import MIMEAudio
from email.mime.base import MIMEBase
from email.mime.image import MIMEImage
from email.mime.text import MIMEText
class disable_file_system_redirection:
_disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection
_revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection
def __enter__(self):
self.old_value = ctypes.c_long()
self.success = self._disable(ctypes.byref(self.old_value))
def __exit__(self, type, value, traceback):
if self.success:
self._revert(self.old_value)
def emailreport(subject, emailto,emailfrom,fileToSend,password,smtpserver,port,msgbody):
msg = MIMEMultipart()
msg["From"] = emailfrom
msg["To"] = ",".join(emailto)
msg["Subject"] = subject
msg.preamble = subject
body = MIMEText(msgbody)
msg.attach(body)
with open(fileToSend, 'rb') as fp:
record = MIMEBase('text', 'octet-stream')
record.set_payload(fp.read())
encoders.encode_base64(record)
record.add_header('Content-Disposition', 'attachment', filename=os.path.basename(fileToSend))
msg.attach(record)
try:
server = smtplib.SMTP(smtpserver,port)
server.ehlo()
server.starttls()
server.login(emailfrom, password)
server.sendmail(emailfrom, emailto, msg.as_string())
server.quit()
return " \nThe email report has been sent to "+msg["To"]
except Exception as e:
return e
current_user = os.popen('query user').read()
with disable_file_system_redirection():
current_user = os.popen('query user').read()
current_user=re.sub("\s+", ",", current_user.strip())
current_user=current_user.replace(">","")
current_user=current_user.replace(","," ")
current_user=current_user.split(" ")
kk=current_user[8]
Path=os.path.join(os.environ['systemdrive'],"\%s.log")%kk
fileToSend=Path
try:
with open(Path,"w+") as f:
f.write(r"**All MEDIA FILES**")
f.write("\n")
s=os.environ['systemdrive']
li=["*.mp3","*.mp4","*.m4a","*.avi","*.mov","*.asx","*.wav","*.wmv"]
with open(Path,"a") as f:
for k in li:
cmd="dir /s /b %s\Users\%s\%s" %(s,kk,k)
with disable_file_system_redirection():
v=os.popen(cmd).read()
f.write("\n")
f.write(k+" FILES \n")
f.write(v)
f.write("\n")
print "User media log file is saved in "+Path
except:
print "Media log file is not created"
subject="Reg media log"
if sendmail==1:
print emailreport(subject,emailto,emailfrom,fileToSend,password,smtpserver,port,msgbody)
print 'mail sent'
else:
print " Set sendmail value as 1 "
Comments