function mask_email( $email, $mask_char, $percent=70 ){
list( $user, $domain ) = explode("@", $email );
$len = strlen( $user );
$mask_count = floor( $len * $percent /100 );
$offset = floor( ( $len - $mask_count ) / 2 );
$masked1 = substr( $user, 0, $offset ) . str_repeat( $mask_char, $mask_count ) . substr( $user, $mask_count+$offset );

list( $domainname, $ext ) = explode(".", $domain );
$len = strlen( $domainname );
$mask_count = floor( $len * $percent /100 );
$offset = floor( ( $len - $mask_count ) / 2 );
$masked2 = substr( $domainname, 0, $offset ) . str_repeat( $mask_char, $mask_count ) . substr( $domainname, $mask_count+$offset );

return( $masked1.'@'.$masked2.'.'.$ext );
}

mask_email('youremailaddress@gmail.com', '*');