def enviar_correo(self, coding = 'utf-8'): sender = config.global_config["sender_email"] user = config.global_config["usuario"] header = config.global_config["encabezado"] receiver = self.config["mail"] text = config.base.out["texto"].get_text(config.base.out["texto"].get_start_iter(), config.base.out["texto"].get_end_iter()) password = base64.b64decode(config.global_config["password"]) smtpserver = config.global_config["smtpserver"] tls = config.global_config["tls"] if sender and password and smtpserver: mensaje = _("El siguiente mensaje se enviará automáticamente en 5 segundos") mensaje += "\n" + _("DE:") + sender mensaje += "\n" + _("PARA:")+receiver mensaje += "\n" + _("ASUNTO:")+header mensaje += "\n" + text av = aviso_temp(mensaje, 5) response = av.response if response == gtk.RESPONSE_CLOSE: return 0 else: import smtplib from email.MIMEText import MIMEText from email.Header import Header from email.Utils import formatdate body = unicode(text, 'utf-8') msg = MIMEText(body.encode(coding), 'plain', coding) msg['From'] = sender msg['To'] = receiver msg['Date'] = formatdate(localtime=1) msg['Subject'] = Header(header, coding) # la 'ñ' no se puede codificar en ASCII try: server = smtplib.SMTP(smtpserver) except: print "Fallo al conectar al servidor SMTP '%s'" % smtpserver return 0 else: server.set_debuglevel(1) server.ehlo(sender) if tls: server.starttls() server.ehlo(sender) try: server.login(user, password) except: print u"Fallo de autenticación" return 0 else: server.sendmail(sender, receiver, msg.as_string()) server.quit() return 1 else: aviso_temp(_(u"No ha configurado aún las opciones de correo saliente."))
def select_contact(self, widget): """ Muestra el panel de contactos """ contact_mos_path = os.path.join(os.path.expanduser('~'),".contactos.mos") if not os.path.exists(contact_mos_path): aviso_temp(_(u"No se ha encontrado contactos previamente almacenados. Edite el mosaico que se abrirá a continuación y no olvide\nguardar los cambios.")) mos = Mosaico("*Contactos*", 3, 3, contact_mos_path) label = gtk.Label(_("Contactos")) pos = self.notebook.append_page(mos,label) self.opened_mos.insert(pos, mos) self.notebook.set_current_page(pos) self.notebook.show_all()
def goto(self): if not (self.ispreview or self.ismini) and self.config["enlace_a_mosaico"]: try: relative = os.path.join(os.path.dirname(self.mosaico.config["ruta_guardado"]), os.path.basename(self.config["enlace_a_mosaico"])) except: print "Error de redireccionamiento: %s" % relative else: if os.path.exists(self.config["enlace_a_mosaico"]): print "Abriendo mosaico %s..." % os.path.split(self.config["enlace_a_mosaico"])[1] config.base.abrir(None, self.config["enlace_a_mosaico"], config.base.get_current_opened()) elif os.path.exists(relative): print "Abriendo mosaico %s..." % os.path.split(relative)[1] config.base.abrir(None, relative, config.base.get_current_opened()) else: mensaje = _("No se puede acceder al archivo ") + self.config["enlace_a_mosaico"] + _(". Revise que existe y que tiene permisos de lectura.") aviso_temp(mensaje, 5)
def run_gui(): config.player = Player(host, festival_port) config.player.run_festival() av = aviso_temp(_("Iniciando el motor de voces. Espere por favor."), 5) for i in range(3): s = config.player.connect() if s: break time.sleep(1) if s and not av.response == gtk.RESPONSE_CLOSE: compigtk = Base() gobject.idle_add(config.player.read_text, _("Bienvenido al comunicador pictográfico de Guadalinex")) compigtk.main() s.close() config.player.stop_festival() print "Eliminando archivos temporales..." try: rmtree(config.temp_dir) except: print "Falló" else: print "OK" else: config.player.stop_festival()