Re: [Python-es] Problemas al trabajar con el módulo email

Chema Cortes py en ls-l.org
Mie Ago 3 11:34:04 CEST 2005


Raúl Alexis Betancort Santana escribió:

> ------------------------------
> #!/usr/bin/python
> 
> import sys,re,ldap,email
> 
> ldapuser=""
> ldappasswd=""
> 
> [...]
> 
> if __name__ == "__main__":
> 
>    msg = email.message_from_file(sys.stdin)
>    f = re.compile('^([_0-9a-zA-Z]+)<?(.*)@(.*)>?$')
>    m = f.match(msg.__getitem__('From'))
>    name = m.group(1)
>    user = m.group(2)
>    domain = m.group(3)
>    print msg.__getitem__('From')
>    msg.__delitem__('From')
>    if checkLocalDomain(domain):
>       msg.add_header('From','%s <%s@%s>' %(returnDN(user,domain),user,domain))
>    else:
>       msg.add_header('From','%s [%s@%s] <%s@%s>' 
> %(name,user,domain,user,domain))
>    print msg.__str__()
> -----------------

A parte de que ya lo hayas resuelto, no deberías acceder a los métodos
implícitos a no ser que quieras modificar su comportamiento.

En lugar de                  Sería

msf.__getitem__('From')	     msf['From']
msg.__delitem__('From')      del msg['From']
print msg.__str__()          print str(msg)

En éste último, es posible que no haga falta ni convertir 'msg' en
cadena y que el print lo haga implícitamente.




Más información sobre la lista de distribución Python-es