diff --git src/wp-includes/pluggable.php src/wp-includes/pluggable.php
index 8b64359..68c9148 100644
--- src/wp-includes/pluggable.php
+++ src/wp-includes/pluggable.php
@@ -227,8 +227,7 @@ function wp_mail( $to, $subject, $message, $headers = '', $attachments = array()
 			$tempheaders = $headers;
 		}
 		$headers = array();
-		$cc = array();
-		$bcc = array();
+		$cc = $bcc = $reply_to = array();
 
 		// If it's actually got contents
 		if ( !empty( $tempheaders ) ) {
@@ -286,10 +285,11 @@ function wp_mail( $to, $subject, $message, $headers = '', $attachments = array()
 						}
 						break;
 					case 'cc':
-						$cc = array_merge( (array) $cc, explode( ',', $content ) );
-						break;
 					case 'bcc':
-						$bcc = array_merge( (array) $bcc, explode( ',', $content ) );
+					case 'reply-to':
+						// Update the existing variable (e.g., $cc, $bcc, $reply_to) from the passed header
+						$header_variable  = str_replace( '-', '_', strtolower( $name ) );
+						$$header_variable = array_merge( (array) $$header_variable, explode( ',', $content ) );
 						break;
 					default:
 						// Add it to our grand headers array
@@ -335,7 +335,7 @@ function wp_mail( $to, $subject, $message, $headers = '', $attachments = array()
 	 *
 	 * @param string $from_email Email address to send from.
 	 */
-	$phpmailer->From = apply_filters( 'wp_mail_from', $from_email );
+	$from_email = apply_filters( 'wp_mail_from', $from_email );
 
 	/**
 	 * Filters the name to associate with the "from" email address.
@@ -344,65 +344,44 @@ function wp_mail( $to, $subject, $message, $headers = '', $attachments = array()
 	 *
 	 * @param string $from_name Name associated with the "from" email address.
 	 */
-	$phpmailer->FromName = apply_filters( 'wp_mail_from_name', $from_name );
+	$from_name = apply_filters( 'wp_mail_from_name', $from_name );
+
+	$phpmailer->setFrom( $from_email, $from_name );
 
 	// Set destination addresses
 	if ( !is_array( $to ) )
 		$to = explode( ',', $to );
 
-	foreach ( (array) $to as $recipient ) {
-		try {
-			// Break $recipient into name and address parts if in the format "Foo <bar@baz.com>"
-			$recipient_name = '';
-			if ( preg_match( '/(.*)<(.+)>/', $recipient, $matches ) ) {
-				if ( count( $matches ) == 3 ) {
-					$recipient_name = $matches[1];
-					$recipient = $matches[2];
-				}
-			}
-			$phpmailer->AddAddress( $recipient, $recipient_name);
-		} catch ( phpmailerException $e ) {
-			continue;
-		}
-	}
-
 	// Set mail's subject and body
 	$phpmailer->Subject = $subject;
 	$phpmailer->Body    = $message;
 
-	// Add any CC and BCC recipients
-	if ( !empty( $cc ) ) {
-		foreach ( (array) $cc as $recipient ) {
-			try {
-				// Break $recipient into name and address parts if in the format "Foo <bar@baz.com>"
-				$recipient_name = '';
-				if ( preg_match( '/(.*)<(.+)>/', $recipient, $matches ) ) {
-					if ( count( $matches ) == 3 ) {
-						$recipient_name = $matches[1];
-						$recipient = $matches[2];
-					}
-				}
-				$phpmailer->AddCc( $recipient, $recipient_name );
-			} catch ( phpmailerException $e ) {
-				continue;
-			}
-		}
-	}
+	// Use appropriate methods for handling addresses, rather than treating them as generic headers
+	$header_method_map = array(
+		'to'       => 'AddAddress',
+		'cc'       => 'AddCc',
+		'bcc'      => 'AddBcc',
+		'reply_to' => 'AddReplyTo'
+	);
 
-	if ( !empty( $bcc ) ) {
-		foreach ( (array) $bcc as $recipient) {
-			try {
-				// Break $recipient into name and address parts if in the format "Foo <bar@baz.com>"
-				$recipient_name = '';
-				if ( preg_match( '/(.*)<(.+)>/', $recipient, $matches ) ) {
-					if ( count( $matches ) == 3 ) {
-						$recipient_name = $matches[1];
-						$recipient = $matches[2];
+	foreach ( $header_method_map as $address_header => $address_handler ) {
+		if ( ! empty( $$address_header ) ) {
+			foreach ( (array) $$address_header as $address ) {
+				try {
+					// Break $recipient into name and address parts if in the format "Foo <bar@baz.com>"
+					$recipient_name = '';
+
+					if ( preg_match( '/(.*)<(.+)>/', $address, $matches ) ) {
+						if ( count( $matches ) == 3 ) {
+							$recipient_name = $matches[1];
+							$address        = $matches[2];
+						}
 					}
+
+					call_user_func( array( $phpmailer, $address_handler ), $address, $recipient_name );
+				} catch ( phpmailerException $e ) {
+					continue;
 				}
-				$phpmailer->AddBcc( $recipient, $recipient_name );
-			} catch ( phpmailerException $e ) {
-				continue;
 			}
 		}
 	}
