#!/usr/bin/env python
# coding: utf-8

# In[11]:


#To define a particular parameter, replace the 'parameterName' inside itsm.getParameter('parameterName') with that parameter's name

import os
emailto=itsm.getParameter('EmailTo')  ## Provide an To email address where the mail need to be sent.
emailfrom=itsm.getParameter('EmailFrom')  ## Provide the From Email address from which the mail to be send
password=itsm.getParameter('Password')               ##Provide password for from email
smtpserver=itsm.getParameter('smptserver') #Default 'smtp.gmail.com'
port=itsm.getParameter('portnumber') #Default port number 587

import sys,shutil,re,sys,socket,_winreg,random,getpass
from datetime import date, datetime
import socket
import smtplib
import mimetypes
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
import ctypes
from subprocess import PIPE, Popen

##Executing
#Writing in TXT
def txtoutput():
    temp=os.environ['TEMP']+'\\output.txt'
    os.popen('powershell.exe Get-Hotfix > '+temp).read()
    
    file_path=temp
    return file_path
print txtoutput()

##Emailing 
def computername():
    return os.environ['COMPUTERNAME']

def ipaddress():
    return socket.gethostbyname(socket.gethostname())

subject='%s %s Patch  Report!!!!!'%(computername(), ipaddress())

message_body="""Hi, 
                
The report has been attached in .txt file.
                
Thanks
                """

fileToSend=txtoutput()

def emailreport(subject, emailto,emailfrom,password,smtpserver,port,msgbody,fileToSend):
    msg = MIMEMultipart()
    msg["From"] = emailfrom
    msg["To"] = ",".join(emailto)
    msg["Subject"] = subject
    msg.preamble = subject
    body = MIMEText(msgbody)
    msg.attach(body)    
    
    attachment=open(fileToSend,"rb")
    p = MIMEBase('application', 'octet-stream') 
    p.set_payload((attachment).read())
    encoders.encode_base64(p)
    p.add_header('Content-Disposition', 'attachment', filename='output.txt')
    msg.attach(p) 
    

    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 "+emailto
    except Exception as e:
        return e


emailreport(subject, emailto,emailfrom,password,smtpserver,port,message_body,fileToSend) 



