diff --git a/email.info b/email.info
index 21fe3bc..ce32f23 100644
--- a/email.info
+++ b/email.info
@@ -4,3 +4,4 @@ core = 7.x
 package = Fields
 
 files[] = email.migrate.inc
+files[] = email.microdata.inc
diff --git a/email.microdata.inc b/email.microdata.inc
new file mode 100644
index 0000000..364f918
--- /dev/null
+++ b/email.microdata.inc
@@ -0,0 +1,25 @@
+<?php
+
+/**
+ * @file
+ * Microdata suggestions
+ */
+
+/**
+ * Suggest microdata terms to use for the email field type.
+ *
+ * This hook should only be used by the module that defines the field type.
+ *
+ * @return array
+ *   An array of suggested mappings, keyed as following:
+ *   $suggested_mappings[group][field_name][mapping scheme]
+ */
+function email_microdata_suggestions() {
+  $suggestions = array();
+
+  $suggestions['fields']['email']['schema.org'] = array(
+    '#itemprop' => array('email'),
+  );
+
+  return $suggestions;
+}
diff --git a/email.module b/email.module
index 8aaa1fd..1b35c7f 100644
--- a/email.module
+++ b/email.module
@@ -12,6 +12,7 @@ function email_field_info() {
       'default_widget' => 'email_textfield',
       'default_formatter' => 'email_default',
       'property_type' => 'text',
+      'microdata' => TRUE,
     ),
   );
 }
@@ -108,6 +109,12 @@ function email_field_formatter_view($object_type, $object, $field, $instance, $l
       $ids = entity_extract_ids($object_type, $object);
       foreach ($items as $delta => $item) {
         $element[$delta] = array('#markup' => l(t('Contact person by email'), 'email/' . $object_type . '/' . $ids[0] . '/' . $instance['field_name']));
+        // When Microdata module is enabled, it outputs field values in a
+        // machine readable form. However, this formatter is selected when
+        // users don't want the email address to be machine readable.
+        // Therefore, the microdata mapping should be unset for this
+        // formatter.
+        unset($object->microdata[$field['field_name']]['#attributes']['itemprop']);
         // Since email is always sent to first item's email, break after any email address found.
         break;
       }
@@ -129,6 +136,12 @@ function email_field_formatter_view($object_type, $object, $field, $instance, $l
           $element[$delta] = array('#markup' => $output);
         }
       }
+      // When Microdata module is enabled, it outputs field values in a
+      // machine readable form. However, this formatter is selected when
+      // users don't want the email address to be machine readable.
+      // Therefore, the microdata mapping should be unset for this
+      // formatter.
+      unset($object->microdata[$field['field_name']]['#attributes']['itemprop']);
       break;
   }
   return $element;
