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 "









        


            
