diff --git src/wp-includes/class-walker-comment.php src/wp-includes/class-walker-comment.php
index e0150b3..913d13f 100644
--- src/wp-includes/class-walker-comment.php
+++ src/wp-includes/class-walker-comment.php
@@ -264,7 +264,7 @@ class Walker_Comment extends Walker {
 			<?php printf( __( '<cite class="fn">%s</cite> <span class="says">says:</span>' ), get_comment_author_link( $comment ) ); ?>
 		</div>
 		<?php if ( '0' == $comment->comment_approved ) : ?>
-		<em class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.' ) ?></em>
+		<em class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation. You will receive an email when it gets approved.' ) ?></em>
 		<br />
 		<?php endif; ?>
 
@@ -329,7 +329,7 @@ class Walker_Comment extends Walker {
 					</div><!-- .comment-metadata -->
 
 					<?php if ( '0' == $comment->comment_approved ) : ?>
-					<p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.' ); ?></p>
+					<p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation. You will receive an email when it gets approved.' ); ?></p>
 					<?php endif; ?>
 				</footer><!-- .comment-meta -->
 
diff --git src/wp-includes/comment-functions.php src/wp-includes/comment-functions.php
index 70a1bfd..728eb71 100644
--- src/wp-includes/comment-functions.php
+++ src/wp-includes/comment-functions.php
@@ -1688,6 +1688,81 @@ function wp_new_comment_notify_postauthor( $comment_ID ) {
 }
 
 /**
+ * Notify a comment author when their comment gets approved.
+ *
+ * This notification is only sent when the comment status
+ * changes from unapproved to approved.
+ *
+ * @since 4.4.0
+ *
+ * @param int|WP_Comment $comment_id Comment ID or WP_Comment object.
+ * @return bool Whether the email was sent successfully.
+ */
+function wp_new_comment_notify_commenter( $comment_id ) {
+	$comment = get_comment( $comment_id );
+	if ( ! $comment ) {
+		return false;
+	}
+
+	$post           = get_post( $comment->comment_post_ID );
+	$comment_author = get_user_by( 'email', $comment->comment_author_email );
+
+	if ( ! $post ) {
+		return false;
+	}
+
+	// The comment was left by the post author.
+	if ( $comment->user_id === $post->post_author || $comment_author === get_userdata( $post->post_author ) ) {
+		return false;
+	}
+
+	if ( 1 === intval( get_comment_meta( $comment->comment_ID, '_wp_commenter_notification_sent', true ) ) ) {
+		return false;
+	}
+
+	/*
+	 * The blogname option is escaped with esc_html
+	 * on the way into the database in sanitize_option.
+	 * We want to reverse this for the plain text arena of emails.
+	 */
+	$blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
+
+	/* translators: 1: blog name, 2: post title */
+	$subject = sprintf( __( '[%1$s] Your comment on "%2$s" got approved' ), $blogname, $post->post_title );
+
+	$notify_message = sprintf( __( 'Howdy %s,' ), $comment->comment_author ) . "\r\n\r\n";
+	$notify_message .= sprintf( __( 'Your comment on the post "%1$s" got approved.' ), $post->post_title ) . "\r\n\r\n";
+	/* translators: 1: comment author, 2: author IP, 3: author domain */
+	$notify_message .= sprintf( __( 'View comment: %s' ), get_comment_link( $comment ) ) . "\r\n";
+
+	/**
+	 * Filter the comment approval notification email text.
+	 *
+	 * @since 4.4.0
+	 *
+	 * @param string     $notify_message The comment notification email text.
+	 * @param WP_Comment $comment        Comment object.
+	 */
+	$notify_message = apply_filters( 'comment_approval_notification_text', $notify_message, $comment );
+
+	/**
+	 * Filter the comment approval notification email subject.
+	 *
+	 * @since 4.4.0
+	 *
+	 * @param string     $subject The comment notification email subject.
+	 * @param WP_Comment $comment Comment object.
+	 */
+	$subject = apply_filters( 'comment_approval_notification_subject', $subject, $comment );
+
+	$sent = wp_mail( $comment->comment_author_email, wp_specialchars_decode( $subject ), $notify_message );
+
+	update_comment_meta( $comment->comment_ID, '_wp_commenter_notification_sent', intval( $sent ) );
+
+	return $sent;
+}
+
+/**
  * Sets the status of a comment.
  *
  * The 'wp_set_comment_status' action is called after the comment is handled.
diff --git src/wp-includes/default-filters.php src/wp-includes/default-filters.php
index e9ddc47..f5f5926 100644
--- src/wp-includes/default-filters.php
+++ src/wp-includes/default-filters.php
@@ -342,6 +342,7 @@ add_action( 'comment_post', 'wp_new_comment_notify_postauthor' );
 add_action( 'after_password_reset', 'wp_password_change_notification' );
 add_action( 'register_new_user',      'wp_send_new_user_notifications' );
 add_action( 'edit_user_created_user', 'wp_send_new_user_notifications' );
+add_action( 'comment_unapproved_to_approved', 'wp_new_comment_notify_commenter' );
 
 /**
  * Filters formerly mixed into wp-includes
