I am not going to argue about the choice of a template engine against only PHP. I choose not to use a template engine, like Smarty, because I would like to learn how to prop
I've used various template engines, and designed my own as well, getting more elaborate over time. I think its best to keep it as simple as possible by using native php stuff, instead of creating elaborate functions. (this article has some good points: Boring Architecture is Good). What I found was much better readability and maintenance when coming back to a project after months or years.
For example:
$name="john";
$email="john@xyz.com";
require "templates/unsubscribe.php";
-- templates/unsubscribe.php --
$o=<<
EOHTML;
echo $o;