fetch() returns the template output Description stringfetch stringtemplate stringcache_id string$compile_id This returns the template output instead of displaying it. Supply a valid template resource type and path. As an optional second parameter, you can pass a $cache id, see the caching section for more information. ¶meter.compileid; fetch() caching = true; // only do db calls if cache doesn't exist if(!$smarty->is_cached('index.tpl')) { // dummy up some data $address = '245 N 50th'; $db_data = array( 'City' => 'Lincoln', 'State' => 'Nebraska', 'Zip' => '68502' ); $smarty->assign('Name','Fred'); $smarty->assign('Address',$address); $smarty->assign($db_data); } // capture the output $output = $smarty->fetch('index.tpl'); // do something with $output here echo $output; ?> ]]> Using fetch() to send an email The email_body.tpl template The email_disclaimer.tpl template which uses the {textformat} modifier. The php script using the PHP mail() function getRow($sql); $smarty->assign('contact', $contact); mail($contact['email'], 'Subject', $smarty->fetch('email_body.tpl')); ?> ]]> See also {fetch} display(), {eval}, and template_exists().