[Python-de] Re: Komma-separierte Liste von E-Mailadressen parsen

Diez B. Roggisch deets at web.de
Son Sep 4 14:29:02 CEST 2005


Versuch mal das hier.

Der Trick besteht darin, separierte Segmente aufzusammeln, bis die eine 
gültige Adresse ergeben.

Fehlerbehandlung gibbet nich :)

Diez
-------------- nächster Teil --------------
text =  'Joe Doe <joe at foo.com>, "Hacker, J. Random" <random at hacker.net>, Joe Doe <joe at foo.com>'


import email.Utils, sys


text = text.strip()
#if text[-1] != ",":
#    text = "%s," % text

l = text.split(",")

addr, l = l[0], l[1:]
res = []
while l:
    name, mail = email.Utils.parseaddr(addr)
    if mail.find("@") == -1:
	addr = "%s,%s" % (addr, l[0])
	l = l[1:]
    else:
	res.append((name, mail))
	addr, l = l[0], l[1:]

name, mail = email.Utils.parseaddr(addr)
if mail.find("@") != -1:
    res.append((name, mail))
print res