diff --git a/django/core/handlers/base.py b/django/core/handlers/base.py
index b03c2fd..10a2ac2 100644
--- a/django/core/handlers/base.py
+++ b/django/core/handlers/base.py
@@ -165,13 +165,18 @@ class BaseHandler(object):
             return debug.technical_500_response(request, *exc_info)
 
         # When DEBUG is False, send an error message to the admins.
+        from django.views.debug import ExceptionReporter
+        reporter = ExceptionReporter(request, *exc_info)
+        html_message = reporter.get_traceback_html()
+
         subject = 'Error (%s IP): %s' % ((request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS and 'internal' or 'EXTERNAL'), request.path)
         try:
             request_repr = repr(request)
         except:
             request_repr = "Request repr() unavailable"
         message = "%s\n\n%s" % (self._get_traceback(exc_info), request_repr)
-        mail_admins(subject, message, fail_silently=True)
+        mail_admins(subject, message, fail_silently=True,
+                html_message=html_message)
         # If Http500 handler is not installed, re-raise last exception
         if resolver.urlconf_module is None:
             raise exc_info[1], None, exc_info[2]
diff --git a/django/core/mail/__init__.py b/django/core/mail/__init__.py
index f9d1210..7c26cc8 100644
--- a/django/core/mail/__init__.py
+++ b/django/core/mail/__init__.py
@@ -83,23 +83,29 @@ def send_mass_mail(datatuple, fail_silently=False, auth_user=None,
     return connection.send_messages(messages)
 
 
-def mail_admins(subject, message, fail_silently=False, connection=None):
+def mail_admins(subject, message, html_message=None,
+        fail_silently=False, connection=None):
     """Sends a message to the admins, as defined by the ADMINS setting."""
     if not settings.ADMINS:
         return
-    EmailMessage(settings.EMAIL_SUBJECT_PREFIX + subject, message,
-                 settings.SERVER_EMAIL, [a[1] for a in settings.ADMINS],
-                 connection=connection).send(fail_silently=fail_silently)
-
-
-def mail_managers(subject, message, fail_silently=False, connection=None):
+    mail = EmailMultiAlternatives(settings.EMAIL_SUBJECT_PREFIX + subject,
+                message, settings.SERVER_EMAIL, [a[1] for a in settings.ADMINS],
+                connection=connection)
+    if html_message:
+        mail.attach_alternative(html_message, 'text/html')
+    mail.send(fail_silently=fail_silently)
+
+def mail_managers(subject, message, html_message=None,
+        fail_silently=False, connection=None):
     """Sends a message to the managers, as defined by the MANAGERS setting."""
     if not settings.MANAGERS:
         return
-    EmailMessage(settings.EMAIL_SUBJECT_PREFIX + subject, message,
-                 settings.SERVER_EMAIL, [a[1] for a in settings.MANAGERS],
-                 connection=connection).send(fail_silently=fail_silently)
-
+    mail = EmailMultiAlternatives(settings.EMAIL_SUBJECT_PREFIX + subject,
+                message, settings.SERVER_EMAIL, [a[1] for a in settings.ADMINS],
+                connection=connection)
+    if html_message:
+        mail.attach_alternative(html_message, 'text/html')
+    mail.send(fail_silently=fail_silently)
 
 class SMTPConnection(_SMTPConnection):
     def __init__(self, *args, **kwds):
diff --git a/docs/topics/email.txt b/docs/topics/email.txt
index 31092b0..56190fe 100644
--- a/docs/topics/email.txt
+++ b/docs/topics/email.txt
@@ -113,7 +113,7 @@ mail_admins()
 ``django.core.mail.mail_admins()`` is a shortcut for sending an e-mail to the
 site admins, as defined in the :setting:`ADMINS` setting. Here's the definition:
 
-    .. function:: mail_admins(subject, message, fail_silently=False, connection=None)
+    .. function:: mail_admins(subject, message, html_message=None, fail_silently=False, connection=None)
 
 ``mail_admins()`` prefixes the subject with the value of the
 :setting:`EMAIL_SUBJECT_PREFIX` setting, which is ``"[Django] "`` by default.
@@ -123,6 +123,12 @@ The "From:" header of the e-mail will be the value of the
 
 This method exists for convenience and readability.
 
+.. versionchanged:: 1.3
+
+If ``html_message`` is provided, the resulting e-mail will be a
+multipart/alternative e-mail with ``message`` as the "text/plain"
+content type and ``html_message`` as the "text/html" content type.
+
 mail_managers() function
 ========================
 
@@ -130,7 +136,7 @@ mail_managers() function
 sends an e-mail to the site managers, as defined in the :setting:`MANAGERS`
 setting. Here's the definition:
 
-    .. function:: mail_managers(subject, message, fail_silently=False, connection=None)
+    .. function:: mail_managers(subject, message, html_message=None, fail_silently=False, connection=None)
 
 Examples
 ========
diff --git a/tests/regressiontests/mail/tests.py b/tests/regressiontests/mail/tests.py
index 84be585..dc7bc41 100644
--- a/tests/regressiontests/mail/tests.py
+++ b/tests/regressiontests/mail/tests.py
@@ -414,6 +414,57 @@ Message-ID: ...
 Content
 -------------------------------------------------------------------------------
 
+# Test html_message argument to mail_admins and mail_managers
+>>> mail_managers('Subject', 'Content', connection=connection, html_message='HTML Content')
+Content-Type: multipart/alternative;
+...boundary=...
+MIME-Version: 1.0
+Subject: [Django] Subject
+From: root@localhost
+To: nobody@example.com
+Date: ...
+Message-ID: ...
+
+--===============...
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: quoted-printable
+
+Content
+--===============...
+Content-Type: text/html; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: quoted-printable
+
+HTML Content
+--===============...
+-------------------------------------------------------------------------------
+
+>>> mail_admins('Subject', 'Content', connection=connection, html_message='HTML Content')
+Content-Type: multipart/alternative;
+...boundary=...
+MIME-Version: 1.0
+Subject: [Django] Subject
+From: root@localhost
+To: nobody@example.com
+Date: ...
+Message-ID: ...
+
+--===============...
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: quoted-printable
+
+Content
+--===============...
+Content-Type: text/html; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: quoted-printable
+
+HTML Content
+--===============...
+-------------------------------------------------------------------------------
+
 >>> settings.ADMINS = old_admins
 >>> settings.MANAGERS = old_managers
 
