def __setitem__(self, name, val): "Forbids multi-line headers, to prevent header injection." if "\n" in val or "\r" in val: raise BadHeaderError, "Header values can't contain newlines (got %r for header %r)" % (val, name) if name == "Subject": val = Header(val.encode(settings.MAIL_CHARSET, "replace"), settings.MAIL_CHARSET) MIMEText.__setitem__(self, name, val)
def __setitem__(self, name, val): "Forbids multi-line headers, to prevent header injection." if '\n' in val or '\r' in val: raise BadHeaderError, "Header values can't contain newlines (got %r for header %r)" % (val, name) if name == "Subject": val = Header(val, settings.DEFAULT_CHARSET) MIMEText.__setitem__(self, name, val)
def __setitem__(self, name, val): "Forbids multi-line headers, to prevent header injection." if '\n' in val or '\r' in val: raise BadHeaderError, _("Header values can't " "contain newlines (got %r for header %r)") % (val, name) try: val = str(force_unicode(val)) except UnicodeEncodeError: if name.lower() in ('to', 'from', 'cc'): result = [] for item in val.split(', '): nm, addr = parseaddr(item) nm = str(Header(nm, DEFAULT_CHARSET)) result.append(formataddr((nm, str(addr)))) val = ', '.join(result) else: val = Header(force_unicode(val), DEFAULT_CHARSET) MIMEText.__setitem__(self, name, val)
def __setitem__(self, name, val): name, val = forbid_multi_line_headers(name, val) MIMEText.__setitem__(self, name, val)
def __setitem__(self, name, val): name, val = forbid_multi_line_headers(name, val, self.encoding) MIMEText.__setitem__(self, name, val)