def __init__(self, nom_informe): QtGui.QWidget.__init__(self) self.ui = Ui_Form() self.ui.setupUi(self) self.show() self.ui.label_NomArchAdjunto.setText(nom_informe) self.nom_informe = nom_informe self.setSignal()
class Enviar_informe_email(QtGui.QWidget): def __init__(self, nom_informe): QtGui.QWidget.__init__(self) self.ui = Ui_Form() self.ui.setupUi(self) self.show() self.ui.label_NomArchAdjunto.setText(nom_informe) self.nom_informe = nom_informe self.setSignal() def setSignal(self): self.ui.pushButton_Cancelar.clicked.connect(self.salir) self.ui.pushButton_Enviar.clicked.connect(self.enviarMail) def obtieneEmailDestino(self): email = self.ui.lineEdit_Destino.text() if len(email.split()) != 0 and email.find("@gmail.com") != -1: print email.find("@gmail.com") return email else: print email.find("@gmail.com") self.errorMessage(u"Ingrese email destino valido") return "false" def obtieneAsunto(self): asunto = self.ui.lineEdit_Asunto.text() if len(asunto.split()) != 0: return asunto else: self.errorMessage(u"Ingrese asunto valido") return "false" def enviarMail(self): """ Envia el informe al email especificado en la lidea de texto """ nom_informe = self.nom_informe destinatario = self.obtieneEmailDestino() asunto = self.obtieneAsunto() if destinatario == "false" or asunto == "false": pass else: self.correctMessage( u"Se envio el informe al \ncorreo electrónico: \n" + destinatario + "\n\n Esto puede tardar unos segundos" ) user = "******" password = "******" # para las cabeceras del email remitente = "*****@*****.**" mensaje = self.ui.textEdit_Comentario.toPlainText() + "\n" mensaje = mensaje + "<br>" + "<br>" + "Mensaje Generado Automaticamente <br>" mensaje = mensaje + "No responder al correo electronico de origen" archivo = os.getcwd() + "/INFORMES/" + nom_informe # Host y puerto SMTP de Gmail gmail = smtplib.SMTP("smtp.gmail.com", 587) # protocolo de cifrado de datos utilizado por gmail gmail.starttls() # credenciales gmail.login(user, password) # muestra la depuracion de la operacion de envío (1 = true) gmail.set_debuglevel(1) header = MIMEMultipart() header["Subject"] = asunto header["From"] = remitente header["To"] = destinatario mensaje = MIMEText(mensaje, "html") header.attach(mensaje) if os.path.isfile(archivo): adjunto = MIMEBase("application", "octet-stream") adjunto.set_payload(open(archivo, "rb").read()) encode_base64(adjunto) adjunto.add_header("Content-Disposition", 'attachment; filename="%s"' % os.path.basename(archivo)) header.attach(adjunto) # Enviar email try: gmail.sendmail(remitente, destinatario, header.as_string()) # cerrar conexion SMTP gmail.quit() self.close() except: self.errorMessage(u"Correo Electronico Destino Invalido") else: self.errorMessage(u"No existe dato adjunto, genere el informe nuevamente") self.close() def correctMessage(self, message): """Función que despliega un mensaje de operacion correcta. @param message""" QtGui.QMessageBox.information(self, u"Operacion correcta", message) def errorMessage(self, message): """Función que despliega un mensaje de error. @param message""" QtGui.QMessageBox.warning(self, u"ERROR!", message) def salir(self): self.close()