diff --git src/bp-core/classes/class-bp-optout.php src/bp-core/classes/class-bp-optout.php
index 90dff5f83..1f0e3d4f8 100644
--- src/bp-core/classes/class-bp-optout.php
+++ src/bp-core/classes/class-bp-optout.php
@@ -212,7 +212,8 @@ class BP_Optout {
 	 */
 	protected static function _insert( $data = array(), $data_format = array() ) {
 		global $wpdb;
-		// We must hash the email address at insert.
+		// We must lowercase and hash the email address at insert.
+		$data['email_address_hash'] = strtolower( $data['email_address_hash'] );
 		$data['email_address_hash'] = wp_hash( $data['email_address_hash'] );
 		return $wpdb->insert( BP_Optout::get_table_name(), $data, $data_format );
 	}
@@ -237,8 +238,9 @@ class BP_Optout {
 	protected static function _update( $data = array(), $where = array(), $data_format = array(), $where_format = array() ) {
 		global $wpdb;
 
-		// Ensure that a passed email address is hashed.
+		// Ensure that a passed email address is lowercased and hashed.
 		if ( ! empty( $data['email_address_hash'] ) && is_email( $data['email_address_hash'] ) ) {
+			$data['email_address_hash'] = strtolower( $data['email_address_hash'] );
 			$data['email_address_hash'] = wp_hash( $data['email_address_hash'] );
 		}
 
@@ -296,6 +298,7 @@ class BP_Optout {
 
 			$email_clean = array();
 			foreach ( $emails as $email ) {
+				$email         = strtolower( $email );
 				$email_hash    = wp_hash( $email );
 				$email_clean[] = $wpdb->prepare( '%s', $email_hash );
 			}
@@ -330,6 +333,7 @@ class BP_Optout {
 		// search_terms.
 		if ( ! empty( $args['search_terms'] ) ) {
 			// Matching email_address is an exact match because of the hashing.
+			$args['search_terms']             = strtolower( $args['search_terms'] );
 			$search_terms_like                = wp_hash( $args['search_terms'] );
 			$where_conditions['search_terms'] = $wpdb->prepare( '( email_address_hash LIKE %s )', $search_terms_like );
 		}
diff --git tests/phpunit/testcases/core/optouts.php tests/phpunit/testcases/core/optouts.php
index 7c0d1ecc5..0369f714e 100644
--- tests/phpunit/testcases/core/optouts.php
+++ tests/phpunit/testcases/core/optouts.php
@@ -100,4 +100,85 @@
 		$this->set_current_user( $old_current_user );
 	}
 
+	public function test_bp_optouts_get_by_email_address_mismatched_case() {
+		$old_current_user = get_current_user_id();
+
+		$u1 = $this->factory->user->create();
+		$this->set_current_user( $u1 );
+
+		// Create a couple of optouts.
+		$args = array(
+			'email_address'     => 'ONE@wpfrost.org',
+			'user_id'           => $u1,
+			'email_type'        => 'annoyance'
+		);
+		$i1 = bp_add_optout( $args );
+		$args['email_address'] = 'two@WP.org';
+		$i2 = bp_add_optout( $args );
+
+		$get_args = array(
+			'email_address'  => 'one@WPfrost.org',
+			'fields'         => 'ids',
+		);
+		$optouts = bp_get_optouts( $get_args );
+		$this->assertEqualSets( array( $i1 ), $optouts );
+
+		$this->set_current_user( $old_current_user );
+	}
+
+	public function test_bp_optouts_get_by_search_terms_mismatched_case() {
+		$old_current_user = get_current_user_id();
+
+		$u1 = $this->factory->user->create();
+		$this->set_current_user( $u1 );
+
+		// Create a couple of optouts.
+		$args = array(
+			'email_address'     => 'ONE@wpfrost.org',
+			'user_id'           => $u1,
+			'email_type'        => 'annoyance'
+		);
+		$i1 = bp_add_optout( $args );
+		$args['email_address'] = 'two@WP.org';
+		$i2 = bp_add_optout( $args );
+
+		$get_args = array(
+			'search_terms'   => 'oNe@wPfrost.org',
+			'fields'         => 'ids',
+		);
+		$optouts = bp_get_optouts( $get_args );
+		$this->assertEqualSets( array( $i1 ), $optouts );
+
+		$this->set_current_user( $old_current_user );
+	}
+
+
+	public function test_bp_optouts_get_by_email_address_mismatched_case_after_update() {
+		$old_current_user = get_current_user_id();
+
+		$u1 = $this->factory->user->create();
+		$this->set_current_user( $u1 );
+
+		// Create an opt-out.
+		$args = array(
+			'email_address'     => 'ONE@wpfrost.org',
+			'user_id'           => $u1,
+			'email_type'        => 'annoyance'
+		);
+		$i1 = bp_add_optout( $args );
+		// Update it.
+		$oo_class                = new BP_Optout( $i1 );
+		$oo_class->email_address = 'One@wpFrost.org';
+		$oo_class->save();
+
+		$get_args = array(
+			'email_address'  => 'one@WPfrost.org',
+			'fields'         => 'ids',
+		);
+		$optouts = bp_get_optouts( $get_args );
+		$this->assertEqualSets( array( $i1 ), $optouts );
+
+		$this->set_current_user( $old_current_user );
+	}
+
 }
