Create-scans-mail.gmp.py: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „import sys from base64 import b64decode from pathlib import Path import time import datetime task_name=sys.argv[4] portlist="9ddce1ae-57e7-11e1-b13c-406186ea4…“) |
(kein Unterschied)
|
Version vom 30. September 2020, 13:21 Uhr
import sys from base64 import b64decode from pathlib import Path import time import datetime
task_name=sys.argv[4] portlist="9ddce1ae-57e7-11e1-b13c-406186ea4fc5" scanconf="698f691e-7489-11df-9d8c-002264764cea" openvas="08b69003-5fc2-4037-a479-93b440211c73" pdf_report_format_id = "c402cc3e-b531-11e1-9163-406186ea4fc5"
def send_mail(user,password,from_email,to_email,subject,message,file_location):
msg = MIMEMultipart()
msg['From'] = from_email
msg['To'] = to_email
msg['Subject'] = subject
msg.attach(MIMEText(message, 'plain'))
# Setup the attachment
filename = os.path.basename(file_location)
attachment = open(file_location, "rb")
part = MIMEBase('application', 'octet-stream')
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % filename)
# Attach the attachment to the MIMEMultipart object
msg.attach(part)
server = smtplib.SMTP('thor.xxx.de', 587)
server.starttls()
server.login(user, password)
text = msg.as_string()
server.sendmail(from_email, to_email, text)
server.quit()
def find_task(tname):
res = gmp.get_tasks()
for i, task in enumerate(res.xpath('task')):
id = task.xpath('@id')[0]
name = task.xpath('name/text()')[0]
if name == tname:
return id
def status_task(tname):
res = gmp.get_tasks()
for i, task in enumerate(res.xpath('task')):
id = task.xpath('@id')[0]
name = task.xpath('name/text()')[0]
if name == tname:
status = task.xpath('status/text()')[0]
return status
def progress_task(tname):
res = gmp.get_tasks()
for i, task in enumerate(res.xpath('task')):
id = task.xpath('@id')[0]
name = task.xpath('name/text()')[0]
if name == tname:
progress = task.xpath('progress/text()')[0]
return progress
def create_report(tname,reportid):
time1 = datetime.datetime.now()
timestamp=time1.strftime('%Y-%m-%d')
pdf_filename = "/tmp/" + tname + "-" + timestamp + ".pdf"
pdf_report_format_id = "c402cc3e-b531-11e1-9163-406186ea4fc5"
response = gmp.get_report(
report_id=reportid, report_format_id=pdf_report_format_id
)
report_element = response[0]
content = "".join(report_element.itertext())
binary_base64_encoded_pdf = content.encode('ascii')
binary_pdf = b64decode(binary_base64_encoded_pdf)
pdf_path = Path(pdf_filename).expanduser()
pdf_path.write_bytes(binary_pdf)
print('Done. PDF created: ' + str(pdf_path))
send_mail("scanner","geheim","scanner@xxx.de","technik@xxx.de","tname" + "-" + timestamp ,pdf_filename ,pdf_filename )
task_id = find_task(task_name) res=gmp.start_task(task_id) report_id=res[0].text
while True:
if status_task(task_name) == "Done": break else: time.sleep(30)
create_report(task_name,report_id)