diff --git a/modules/user.eval.inc b/modules/user.eval.inc
index 57e255c..ed9f526 100644
--- a/modules/user.eval.inc
+++ b/modules/user.eval.inc
@@ -98,5 +98,34 @@ function rules_action_user_unblock($account) {
 }
 
 /**
+ * Action: Send a user account e-mail.
+ */
+function rules_action_user_send_account_email($account, $email_type) {
+  // If we received an authenticated user account...
+  if (!empty($account)) {
+    // Attempt to send the account e-mail.
+    // This code is adapted from _user_mail_notify().
+    $params = array('account' => $account);
+    $language = user_preferred_language($account);
+    $mail = drupal_mail('user', $email_type, $account->mail, $language, $params);
+    if ($email_type == 'register_pending_approval') {
+      // If a user registered requiring admin approval, notify the admin, too.
+      // We use the site default language for this.
+      drupal_mail('user', 'register_pending_approval_admin', variable_get('site_mail', ini_get('sendmail_from')), language_default(), $params);
+    }
+
+    $result = empty($mail) ? NULL : $mail['result'];
+
+    // Log the success or failure.
+    if ($result) {
+      watchdog('rules', '%type e-mail sent to %recipient.', array('%type' => $email_type, '%recipient' => $account->mail));
+    }
+    else {
+      watchdog('rules', 'Failed to send %type e-mail to %recipient.', array('%type' => $email_type, '%recipient' => $account->mail));
+    }
+  }
+}
+
+/**
  * @}
  */
diff --git a/modules/user.rules.inc b/modules/user.rules.inc
index f5148e4..3e06b1a 100644
--- a/modules/user.rules.inc
+++ b/modules/user.rules.inc
@@ -214,6 +214,24 @@ function rules_user_action_info() {
     'label' => t('Unblock a user'),
     'base' => 'rules_action_user_unblock',
   );
+  $items['user_send_account_email'] = array(
+    'label' => t('Send account e-mail'),
+    'parameter' => array(
+      'account' => array(
+        'type' => 'user',
+        'label' => t('Account'),
+      ),
+      'email_type' => array(
+        'type' => 'text',
+        'label' => t('E-mail type'),
+        'description' => t("Select the e-mail based on your site's account settings to send to the user."),
+        'options list' => 'rules_user_account_email_options_list',
+      ),
+    ),
+    'group' => t('User'),
+    'base' => 'rules_action_user_send_account_email',
+    'access callback' => 'rules_user_integration_access',
+  );
   return $items;
 }
 
@@ -232,5 +250,23 @@ function rules_user_roles_options_list($element) {
 }
 
 /**
+ * Options list callback for user account e-mail types.
+ *
+ * @see _user_mail_notify()
+ */
+function rules_user_account_email_options_list() {
+  return array(
+    'register_admin_created' => t('Welcome (new user created by administrator)'),
+    'register_no_approval_required' => t('Welcome (no approval required)'),
+    'register_pending_approval' => t('Welcome (awaiting approval)'),
+    'password_reset' => t('Password recovery'),
+    'status_activated' => t('Account activation'),
+    'status_blocked' => t('Account blocked'),
+    'cancel_confirm' => t('Account cancellation confirmation'),
+    'status_canceled' => t('Account canceled'),
+  );
+}
+
+/**
  * @}
  */
