Hola como están tengo un script que con el comando "systeminfo" copila los datos y me lo envía por diferentes método ya hice el método local que es mediante una memoria usb lo abro en otro ordenado y listo y también con un servidor ftp pero tengo problemas con el envió por email lo que quiero hacer es que el archivo se cree y se envié por email automáticamente no se si me exprese bien, disculpen solo tengo 4 semanas con python y se que esto suena un poco noob.
aquí el código
import os
import sys #aqui importamos todo
import posixpath
import smtplib
from email.mime.text import MIMEText
from email.MIMEMultipart import MIMEMultipart
from email.MIMEImage import MIMEImage
from email.Encoders import encode_base64
def extraer_informacion():
comando = "systeminfo"
tubo = os.popen (comando) #Aqui sacamos el archivo
datos = tubo.readlines ()
nombre_pc = datos[1].split(" ")[-1].split("\n")[0]
nombre_fichero = "Informacion de" + nombre_pc+".txt"
fichero = open(nombre_fichero, "w")
fichero.writelines(datos)
fichero.close()
return nombre_fichero
def usuarios():
msg = MIMEMultipart()
msg['From'] = '[email protected]' #correo de usuarioss
msg['To'] = '[email protected]'
msg['Subject']="Correo con texto Adjunta"
def archivo(): #Esto vino con el scrip del correo, No entiendo bien como funciona
f = open(fichero, "rb")
attach_text = MIMEText(fichero.read())
attach_text.add_header('Content-Disposition', 'attachment; filename = "fichero"')
msg.attach(attach_image)
def Autenticamos():
mailServer = smtplib.SMTP('smtp.gmail.com',587)
mailServer.ehlo()
mailServer.starttls() #Nos autenticamos
mailServer.ehlo()
mailServer.login("emailxx","pass")
mailServer.sendmail("emailxx", "emailxx", msg.as_string())
mailServer.close()
fichero = extraer_informacion()
archivo()
usuarios() #Aqui concluye todo
Autenticamos()
Ando desde el movil y no puedo ver bien el code, pero a groso modo andas usando una cuenta de hotmail en gmail :P, dale una revisadita a los siguientes links mientras llego a casa y lo reviso o alguien del foro logra verlo mas a fondo.
http://www.mkyong.com/python/how-do-send-email-in-python-via-smtplib
http://rosettacode.org/wiki/Send_an_email#Python
En la siguiente parte de código
def archivo(): #Esto vino con el scrip del correo, No entiendo bien como funciona
f = open(fichero, "rb")
attach_text = MIMEText(fichero.read())
attach_text.add_header('Content-Disposition', 'attachment; filename = "fichero"')
msg.attach(attach_image)
Realizas un atach de una imagen ;), xD en ningun lugar pones el formato del fichero asi, un poco de google puede ayudar una busqueda rápida.
http://lesthack.com.mx/2010/10/14/enviar-e-mail-con-python/
Regards,
Snifer
PD: Llego a casa y juego un rato y te paso codigo funcional ;)
Ya lo termine dame un rato que te lo subo y pruebo ya llegue a casa :P
Edit2
Listo estimado el codigo funcional :P
Enviado desde:
(https://pbs.twimg.com/media/Btrnb_RIMAAuQeq.png:large)
Enviado A:
(https://pbs.twimg.com/media/Btrnb7wIQAAaaNe.png:large)
import os
import sys
import smtplib
import mimetypes
from email.MIMEMultipart import MIMEMultipart
from email.Encoders import encode_base64
from email.mime.text import MIMEText
from email.MIMEBase import MIMEBase
from email import encoders
gmail_to = '[email protected]'
gmail_from = '[email protected]'
password='*******'
msg = MIMEMultipart()
msg['From']= (gmail_from)
msg['To']= (gmail_to)
msg['Subject']="Correo PoC SniferL4bs"
file = open("/tmp/log.txt", "rb") #Direccion del Archivo
attach_file = MIMEBase('multipart', 'encrypted')
attach_file.set_payload(file.read())
file.close()
attach_file.add_header('Content-Disposition', 'attachment', filename='SniferL4bs PoC')#NOMBRE DEL ARCHIVO A ENVIAR QUE SE VERA
msg.attach(attach_file)
mailServer = smtplib.SMTP('smtp.gmail.com',587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(gmail_from, password) #
mailServer.sendmail(gmail_from, gmail_to, msg.as_string())
mailServer.close()
Cualquier duda avisas... :), define tus clases y demas lo hice rapido :P
PD3: Creo que andas de suerte :| pocas veces programo y ayudo asi xDD los que me conocen lo saben,
Regards,
Snifer
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Ando desde el movil y no puedo ver bien el code, pero a groso modo andas usando una cuenta de hotmail en gmail :P, dale una revisadita a los siguientes links mientras llego a casa y lo reviso o alguien del foro logra verlo mas a fondo.
http://www.mkyong.com/python/how-do-send-email-in-python-via-smtplib
http://rosettacode.org/wiki/Send_an_email#Python
En la siguiente parte de código
def archivo(): #Esto vino con el scrip del correo, No entiendo bien como funciona
f = open(fichero, "rb")
attach_text = MIMEText(fichero.read())
attach_text.add_header('Content-Disposition', 'attachment; filename = "fichero"')
msg.attach(attach_image)
Realizas un atach de una imagen ;), xD en ningun lugar pones el formato del fichero asi, un poco de google puede ayudar una busqueda rápida.
http://lesthack.com.mx/2010/10/14/enviar-e-mail-con-python/
Regards,
Snifer
PD: Llego a casa y juego un rato y te paso codigo funcional ;)
Ya lo termine dame un rato que te lo subo y pruebo ya llegue a casa :P
Edit2
Listo estimado el codigo funcional :P
Enviado desde:
(https://pbs.twimg.com/media/Btrnb_RIMAAuQeq.png:large)
Enviado A:
(https://pbs.twimg.com/media/Btrnb7wIQAAaaNe.png:large)
import os
import sys
import smtplib
import mimetypes
from email.MIMEMultipart import MIMEMultipart
from email.Encoders import encode_base64
from email.mime.text import MIMEText
from email.MIMEBase import MIMEBase
from email import encoders
gmail_to = '[email protected]'
gmail_from = '[email protected]'
password='*******'
msg = MIMEMultipart()
msg['From']= (gmail_from)
msg['To']= (gmail_to)
msg['Subject']="Correo PoC SniferL4bs"
file = open("/tmp/log.txt", "rb") #Direccion del Archivo
attach_file = MIMEBase('multipart', 'encrypted')
attach_file.set_payload(file.read())
file.close()
attach_file.add_header('Content-Disposition', 'attachment', filename='SniferL4bs PoC')#NOMBRE DEL ARCHIVO A ENVIAR QUE SE VERA
msg.attach(attach_file)
mailServer = smtplib.SMTP('smtp.gmail.com',587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(gmail_from, password) #
mailServer.sendmail(gmail_from, gmail_to, msg.as_string())
mailServer.close()
Cualquier duda avisas... :), define tus clases y demas lo hice rapido :P
PD3: Creo que andas de suerte :| pocas veces programo y ayudo asi xDD los que me conocen lo saben,
Regards,
Snifer
Gracias broo! tenia ese mismo tuto y funciona desde hotmail pero no me exprese bien el archivo lo crea el mismo scrip pero vere como me la ingenio gracias!
Citardef extraer_informacion():
comando = "systeminfo"
tubo = os.popen (comando)
datos = tubo.readlines ()
nombre_pc = datos[1].split(" ")[-1].split("\n")[0]
nombre_fichero = "Informacion de" + nombre_pc+".txt"
fichero = open(nombre_fichero, "w")
fichero.writelines(datos)
fichero.close()
return nombre_fichero
Hola bro, avisanos si ya está solucionado el problema para cerrar el post
Saludos!
ANTRAX
No todavia estoy medio uff, lo que quiero es que el mismo script cree un txt y lo mande pero como tengo que poner la ruta estoy medio dudoso
Fijate si te sirve esto: http://blog.underc0de.org/2014/04/i-o-en-python.html
Saludos!
ANTRAX
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Fijate si te sirve esto: http://blog.underc0de.org/2014/04/i-o-en-python.html
Saludos!
ANTRAX
Gracias lo hare
Para crear es mas simple usa os.system(COMANDO A USAR | log.txt) y ya :D.
Regards,
Snifer
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Para crear es mas simple usa os.system(COMANDO A USAR | log.txt) y ya :D.
Regards,
Snifer
uff vere como me va gracias ya lo logre pero de una forma brusca con el otro scrip me crea 3 carpetas en otra pc y no quiero eso
Como andas en windows por lo que me dijiste juega con esto.
>>>import os
>>>print os.popen("systeminfo").read()
En vez de pipe usa >> log.txt y listo.
PD: Ando haciendo esta parte casi de memoria, no ando en windows.
Regards,
Snifer