@register.filter(name='secure_mail') @stringfilter def secure_mail(value): """ Returns a somewhat safer email address Usage: {{ "mailto:me@domain.com"|secure_mail }} Outputs: mailto:me@domain.com """ try: return "".join(["&#%s;" %(ord(c)) for c in value]) except: return value secure_mail.is_safe = True # because "&" is renderd with autoescape by default