What is MIME type "text/x-ms-contact"?

A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.

text/x-ms-contact is a MIME type for files that store contact details in a text-based format.
It is used by Microsoft’s Windows Contacts system to hold personal information such as names, phone numbers, and email addresses.
The file linked with this MIME type is typically represented by the file extension CONTACT.

Associated file extensions

Usage Examples

HTTP Header

When serving content with this MIME type, set the Content-Type header:


    Content-Type: text/x-ms-contact    
  

HTML

In HTML, you can specify the MIME type in various elements:


    <a href="file.dat" type="text/x-ms-contact">Download file</a>    
  

Server-side (Node.js)

Setting the Content-Type header in Node.js:


    const http = require('http');    
    
    http.createServer((req, res) => {    
      res.setHeader('Content-Type', 'text/x-ms-contact');    
      res.end('Content here');    
    }).listen(3000);    
  

Associated file extensions

FAQs

What is the text/x-ms-contact MIME type used for?

The text/x-ms-contact MIME type identifies files created by the Windows Contacts application, typically found in older versions of Microsoft Windows like Vista and Windows 7. These files, using the .contact extension, store individual address book entries in an XML-based format containing names, emails, and physical addresses.

How do I open a file with the text/x-ms-contact content type?

On Windows systems, these files open natively in the Windows Contacts viewer or Outlook. Because the underlying format is XML text, you can also open them in any standard text editor like Notepad, Sublime Text, or VS Code to view the raw data structure.

How do I configure Apache or Nginx to serve .contact files correctly?

To prevent these files from being served as generic text, you must update your server configuration. For Apache, add AddType text/x-ms-contact .contact to your .htaccess file. For Nginx, add text/x-ms-contact contact; inside the types { } block of your nginx.conf.

Is text/x-ms-contact the same as a vCard?

No, they are different formats. While both store contact information, text/x-ms-contact is a Microsoft-specific XML format, whereas text/vcard (associated with .vcf files) is the industry-standard format supported by Apple, Google, and mobile devices.

Why does my browser display XML code when I click a .contact link?

Most modern web browsers (like Chrome or Firefox) do not have a built-in viewer for the Windows Contacts format. Since the MIME type begins with text/ and the content is XML, the browser attempts to render the raw text tree rather than a graphical contact card.

Are there security risks associated with serving text/x-ms-contact files?

The primary risk is the exposure of Personally Identifiable Information (PII), such as private phone numbers and home addresses, if these files are publicly accessible. Additionally, applications parsing these XML files should be secured against XML External Entity (XXE) attacks.

How can I convert a text/x-ms-contact file to a more common format?

You can use the Export feature within the Windows Contacts folder to save the data as a CSV or vCard (.vcf) file. This makes the data compatible with modern email clients and mobile devices that may not recognize the legacy text/x-ms-contact type.

General FAQ

What is a MIME type?

A MIME (Multipurpose Internet Mail Extensions) type is a standard that indicates the nature and format of a document, file, or assortment of bytes. MIME types are defined and standardized in IETF's RFC 6838.

MIME types are important because they help browsers and servers understand how to process a file. When a browser receives a file from a server, it uses the MIME type to determine how to display or handle the content, whether it's an image to display, a PDF to open in a viewer, or a video to play.

MIME types consist of a type and a subtype, separated by a slash (e.g., text/html, image/jpeg, application/pdf). Some MIME types also include optional parameters.

How do I find the MIME type for a file?

You can check the file extension or use a file identification tool such as file --mime-type on the command line. Many programming languages also provide libraries to detect MIME types.

Why are multiple MIME types listed for one extension?

Different applications and historical conventions may use alternative MIME identifiers for the same kind of file. Showing them all helps ensure compatibility across systems.