diff --git a/includes/webform.emails.inc b/includes/webform.emails.inc
index 61582b5..304f3ab 100644
--- a/includes/webform.emails.inc
+++ b/includes/webform.emails.inc
@@ -178,6 +178,11 @@ function webform_email_edit_form($form, $form_state, $node, $email = array()) {
     '#value' => isset($email['eid']) ? $email['eid'] : NULL,
   );
 
+  $conditional_data = NULL;
+  if ($form['eid']['#value']) {
+    $conditional_data = unserialize($node->webform['emails'][$form['eid']['#value']]['conditional_data']);
+  }
+
   // All these fields work essentially the same, with a radio button set,
   // a textfield for custom values, and a select list for a component.
   foreach (array('email', 'subject', 'from_address', 'from_name') as $field) {
@@ -317,6 +322,54 @@ function webform_email_edit_form($form, $form_state, $node, $email = array()) {
 
   $form['#validate'] = array('webform_email_address_validate', 'webform_email_edit_form_validate');
 
+  // Add conditional fields.
+  $conditional_components = array();
+  $counter = 0;
+  foreach ($node->webform['components'] as $cid => $test_component) {
+    if (webform_component_feature($test_component['type'], 'conditional')) {
+      $conditional_components[$cid] = $test_component;
+    }
+    $counter++;
+  }
+  $form['conditional'] = array(
+    '#weight' => 19,
+    '#type' => 'fieldset',
+    '#title' => t('Conditional rules'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+    '#description' => t('Create a rule to control whether or not to send messages to this email address.'),
+    '#tree' => FALSE,
+  );
+  $form['conditional']['conditional_data'] = array(
+    '#tree' => TRUE,
+  );
+  $form['conditional']['conditional_data']['conditional_component'] = array(
+    '#type' => 'select',
+    '#title' => t('Component'),
+    '#options' => webform_component_list($node, $conditional_components, FALSE, TRUE),
+    '#description' => t('Select another component to decide whether to send messages to this email address.'),
+    '#default_value' => (!empty($conditional_data)) ? $conditional_data['conditional_component'] : '',
+  );
+  $form['conditional']['conditional_data']['conditional_operator'] = array(
+    '#type' => 'select',
+    '#title' => t('Operator'),
+    '#options' => array(
+      '=' => t('Is one of'),
+      '!=' => t('Is not one of')
+    ),
+    '#description' => t('Determines whether the list below is inclusive or exclusive.'),
+    '#default_value' => (!empty($conditional_data)) ? $conditional_data['conditional_operator'] : '',
+  );
+  $form['conditional']['conditional_data']['conditional_values'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Values'),
+    '#description' => t('List values, one per line, that will trigger this action. If you leave this blank, this component will always display.'),
+    '#default_value' => (!empty($conditional_data)) ? $conditional_data['conditional_values'] : '',
+  );
+  if (empty($conditional_components)) {
+    $form['conditional']['#access'] = FALSE;
+  }
+
   return $form;
 }
 
@@ -404,6 +457,7 @@ function webform_email_edit_form_submit($form, &$form_state) {
   $email = array(
     'eid' => $form_state['values']['eid'],
     'nid' => $form_state['values']['node']->nid,
+    'conditional_data' => $form_state['values']['conditional_data'],
   );
 
   foreach (array('email', 'from_name', 'from_address', 'subject') as $field) {
diff --git a/webform.install b/webform.install
index 445a085..3591e30 100644
--- a/webform.install
+++ b/webform.install
@@ -237,6 +237,12 @@ function webform_schema() {
         'not null' => TRUE,
         'default' => 0,
       ),
+      'conditional_data' => array(
+        'description' => 'Data about conditions under which to use this email.',
+        'type' => 'text',
+        'serialize' => TRUE,
+        'not null' => TRUE,
+      ),
     ),
     'primary key' => array('nid', 'eid'),
   );
@@ -574,6 +580,22 @@ function webform_update_7311() {
 }
 
 /**
+ * Added support for conditions in e-mail sending.
+ */
+function webform_update_7312() {
+
+  if (!db_field_exists('webform_emails', 'conditional_data')) {
+    db_add_field('webform_emails', 'conditional_data', array(
+      'description' => 'Data about conditions under which to use this email.',
+      'type' => 'text',
+      'serialize' => TRUE,
+      'not null' => TRUE,
+      'initial' => '',
+    ));
+  }
+}
+
+/**
  * Remove unused Webform variables.
  */
 function webform_update_6327() {
diff --git a/webform.module b/webform.module
index 2b7a821..fc3ca0b 100644
--- a/webform.module
+++ b/webform.module
@@ -2207,6 +2207,36 @@ function webform_client_form_submit($form, &$form_state) {
   $node = $form['#node'];
   $sid = $form_state['values']['details']['sid'] ? (int) $form_state['values']['details']['sid'] : NULL;
 
+  // Condition checking code adapted from _webform_client_form_rule_check
+  $components = $form['#node']->webform['components'];
+  foreach ($form['#node']->webform['emails'] as $eid => $email) {
+    $conditional_data = unserialize($email['conditional_data']);
+    if ($conditional_data['conditional_values']) {
+      $input_value = isset($form_state['values']['submitted'][$conditional_data['conditional_component']]) ? $form_state['values']['submitted'][$conditional_data['conditional_component']] : NULL;
+      $input_values = is_array($input_value) ? $input_value : array($input_value);
+      $test_values = array_map('trim', explode("\n", $conditional_data['conditional_values']));
+
+      if (empty($input_values) && !empty($test_values)) {
+        $show_component = FALSE;
+      }
+      else {
+        foreach ($input_values as $input_value) {
+          if ($show_component = in_array($input_value, $test_values)) {
+            break;
+          }
+        }
+      }
+
+      if ($conditional_data['conditional_operator'] == '!=') {
+        $show_component = !$show_component;
+      }
+
+      if (!$show_component) {
+        unset($form['#node']->webform['emails'][$eid]);
+      }
+    }
+  }
+
   // Check if user is submitting as a draft.
   $is_draft = (int) !empty($form_state['save_draft']);
 
