diff --git a/src/wp-admin/network/site-new.php b/src/wp-admin/network/site-new.php
index 70d9f1c..a02a871 100644
--- a/src/wp-admin/network/site-new.php
+++ b/src/wp-admin/network/site-new.php
@@ -142,31 +142,7 @@ if ( isset( $_REQUEST['action'] ) && 'add-site' == $_REQUEST['action'] ) {
 			update_user_option( $user_id, 'primary_blog', $id, true );
 		}
 
-		wp_mail(
-			get_site_option( 'admin_email' ),
-			sprintf(
-				/* translators: %s: network name */
-				__( '[%s] New Site Created' ),
-				get_network()->site_name
-			),
-			sprintf(
-				/* translators: 1: user login, 2: site url, 3: site name/title */
-				__(
-					'New site created by %1$s
-
-Address: %2$s
-Name: %3$s'
-				),
-				$current_user->user_login,
-				get_site_url( $id ),
-				wp_unslash( $title )
-			),
-			sprintf(
-				'From: "%1$s" <%2$s>',
-				_x( 'Site Admin', 'email "From" field' ),
-				get_site_option( 'admin_email' )
-			)
-		);
+        wpmu_new_site_notification( $id, $current_user->user_login, $title );
 		wpmu_welcome_notification( $id, $user_id, $password, $title, array( 'public' => 1 ) );
 		wp_redirect(
 			add_query_arg(
diff --git a/src/wp-includes/ms-functions.php b/src/wp-includes/ms-functions.php
index f2dbbc7..a081659 100644
--- a/src/wp-includes/ms-functions.php
+++ b/src/wp-includes/ms-functions.php
@@ -1622,6 +1622,62 @@ function install_blog_defaults( $blog_id, $user_id ) {
 }
 
 /**
+ * Notify admin that new site was created.
+ *
+ * Filter {@see 'wpmu_new_site_notification'} to disable or bypass.
+ *
+ * @since MU (3.0.0)
+ *
+ * @param int    $blog_id    Blog ID.
+ * @param string $user_login User login.
+ * @param string $title Site title.
+ * @return bool
+ */
+function wpmu_new_site_notification($blog_id, $user_login, $title) {
+    /**
+     * Filters whether to bypass the new site created email for admin.
+     *
+     * Returning false disables the welcome email.
+     *
+     * @since MU (3.0.0)
+     *
+     * @param int|bool $blog_id Blog ID.
+     * @param int $user_id User ID.
+     * @param string $password User password.
+     * @param string $title Site title.
+     * @param array $meta Signup meta data. By default, contains the requested privacy setting and lang_id.
+     */
+    if (!apply_filters('wpmu_new_site_notification', $blog_id, $user_login, $title))
+        return false;
+
+    wp_mail(
+        get_site_option('admin_email'),
+        sprintf(
+        /* translators: %s: network name */
+            __('[%s] New Site Created'),
+            get_network()->site_name
+        ),
+        sprintf(
+        /* translators: 1: user login, 2: site url, 3: site name/title */
+            __('New site created by %1$s
+
+Address: %2$s
+Name: %3$s'),
+            $user_login,
+            get_site_url($blog_id),
+            wp_unslash($title)
+        ),
+        sprintf(
+            'From: "%1$s" <%2$s>',
+            _x('Site Admin', 'email "From" field'),
+            get_site_option('admin_email')
+        )
+    );
+
+    return true;
+}
+
+/**
  * Notify a user that their blog activation has been successful.
  *
  * Filter {@see 'wpmu_welcome_notification'} to disable or bypass.
