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