So you have email addresses embedded within a text field? Email::obfuscate() handles encoding email addresses to 'hide' the addresses but this only works on a single email (it won't replace all email addresses within content).
I'd do something like.. (not tested, but should give you a start)
function getEmailEscapedContent() {
$content = $this->Content;
$callback = function($matches) {
Email::obfuscate($matches[0]);
};
return DBField::create_field('HTMLText', preg_replace_callback("/[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/i", $callback,$content));
}
Then instead of using $Content to output, use $EmailEscapedContent