diff --git a/django/core/mail.py b/django/core/mail.py
index b607573..9b59cfb 100644
--- a/django/core/mail.py
+++ b/django/core/mail.py
@@ -71,8 +71,6 @@ class BadHeaderError(ValueError):
 
 def forbid_multi_line_headers(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 = force_unicode(val).encode('ascii')
     except UnicodeEncodeError:
@@ -85,6 +83,8 @@ def forbid_multi_line_headers(name, val):
             val = ', '.join(result)
         else:
             val = Header(force_unicode(val), settings.DEFAULT_CHARSET)
+    if '\n' in val or '\r' in val:
+        raise BadHeaderError("Header values can't contain newlines (got %r for header %r)" % (val, name))
     return name, val
 
 class SafeMIMEText(MIMEText):
