Здравствуй, дорогой друг)
Вот вам кусочек с рабочего проэкта.
суть вот в чём.
Есть функция которая принимает 2 параметра 
$template - это название файла с шаблоном в папке с шаблонами.
$args - Массив для замены значений в письме.
public function send_email( $template, $args ) {
				ob_start();
				include APA_PATH . "/templates/emails/{$template}.php";
				$content = ob_get_clean();
				foreach ( $args as $key => $value ) {
					if ( ! is_array( $value ) && ! is_object( $value ) ) {
						$search  = '{$' . $key . '}';
						$content = str_replace( $search, $value, $content );
					}
				}
				$message = $content;
				wp_mail( $this->getEmailTo(), $this->getEmailSubject(), $message, $header );
			}
Получаем содержимое файла с шаблоном и сохраняем в переменную 
$contentob_start();
include APA_PATH . "/templates/emails/{$template}.php";
$content = ob_get_clean();
Проходимся по массиову и ищем плейсхолдеры формата 
{$user_name} заменяем на реальные значения с массива и заменяем в переменной 
$contentforeach ( $args as $key => $value ) {
					if ( ! is_array( $value ) && ! is_object( $value ) ) {
						$search  = '{$' . $key . '}';
						$content = str_replace( $search, $value, $content );
					}
				}
И финальный шаг: отсылаем письмо
$message = $content;
wp_mail( $this->getEmailTo(), $this->getEmailSubject(), $message, $header );
PS. 
wp_mail() - это функция из вордпресс