diff --git a/wp-admin/network/site-new.php b/wp-admin/network/site-new.php
index 0b404ea7c4..7c21ac9f3d 100644
--- a/wp-admin/network/site-new.php
+++ b/wp-admin/network/site-new.php
@@ -136,28 +136,61 @@ 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
+		/* translators: %s: network name */
+		$new_site_subject = sprintf( __( '[%s] New Site Created' ), get_network()->site_name );
 
+		/* translators: 1: user login, 2: site url, 3: site name/title */
+		$new_site_message = sprintf(
+			__( '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' )
-			)
+			$current_user->user_login,
+			get_site_url( $id ),
+			wp_unslash( $title )
+		);
+
+		$headers = sprintf(
+			'From: "%1$s" <%2$s>',
+			_x( 'Site Admin', 'email "From" field' ),
+			get_site_option( 'admin_email' )
+		);
+
+		$new_site_created_email = array(
+			'admin_email' 	=> get_site_option( 'admin_email' ),
+			'subject'		=> $new_site_subject,
+			'message'		=> $new_site_message,
+			'headers'		=> $headers
+		);
+
+		/**
+		 * Filters the contents of the email sent when a new site is created.
+		 *
+		 * @since 4.9
+		 *
+		 * @param array $new_site_created_email {
+		 *            Used to build wp_mail().
+		 *            @type string $admin_email Email of the newly created site user.
+		 *            @type string $subject The subject of the email.
+		 *            @type string $message The content of the email.
+		 *                The following strings have a special meaning and will get replaced dynamically:
+		 *                - ###SITENAME###    The name of the site.
+		 *                - ###SITEURL###     The URL to the site.
+		 *            @type string $headers Headers. Add headers in a newline (\r\n) separated string.
+		 *        }
+		 * @param int $user_id ID of the newly created user.
+		 *
+		 */
+
+		$new_site_created_email = apply_filters( 'new_site_created', $new_site_created_email, $user_id );
+
+		$new_site_created_email['message'] = str_replace( '###SITENAME###', wp_unslash( $title ), $new_site_created_email['message'] );
+		$new_site_created_email['message'] = str_replace( '###SITEURL###', get_site_url( $id ), $new_site_created_email['message'] );
+
+		wp_mail(
+			$new_site_created_email['admin_email'],
+			$new_site_created_email['subject'],
+			$new_site_created_email['message'],
+			$new_site_created_email['headers']
 		);
 		wpmu_welcome_notification( $id, $user_id, $password, $title, array( 'public' => 1 ) );
 		wp_redirect( add_query_arg( array( 'update' => 'added', 'id' => $id ), 'site-new.php' ) );
