Problemas al trabajar con el módulo email

Raúl Alexis Betancort Santana rabs en dimension-virtual.com
Mar Ago 2 20:38:22 CEST 2005


Hola a todos .. estoy intentando hacer un pequeño script que reescriba el 
campo From de un email por los datos del DN de una entrada LDAP.

La parte de LDAP ya la tengo completa, el problema lo tengo a la hora de 
modificar el From del mensaje original, os pego la parte principal del 
script ..

------------------------------
#!/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__()
-----------------

Cosas que no me funcionan:

- La expresión regular no está fina del todo, de hecho falla la mayoría de las 
veces. ¿Alguien tiene una expresión para validar una dirección de email y 
pillar los tres datos que necesito?

- Cuando hago el msg.__delitem__ funciona perfectamente, pero luego el 
msg.add_header no funciona, porque al hacer el print msg.__str__ no aparece 
ninguna linea From en el Header

¿Que estoy haciendo mal? .. ¿alguna URL con ejemplos de como usar el módulo 
email ?

Estoy usando python 2.4.1 y python-ldap 2.0.9, aunque esto último da igual.

Saludos




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