Te doy un consejo ..
Si usas:
http://www.php.net/nombre_funcion_qu..._que_es_de_php
podrías ver rápidamente si existe o no ... (hasta que conozcas más el lenguaje y veas por tí mismo si existen o no ..)
También ayuda ver el código que "llamas" en ese mismo código .. ese tal "funciones.php" y bueno .. conocer el concepto de "función" en sí.
Sobre el código que expones (sé que no es tuyo .. no te "hecho" la culpa a tí .. pero es como "aviso" para que que quiera usarlo):
NO usa los arrays superglobales $_GET .. $_POST .. etc. Esto de por si ya te va a plantear problemas como los que observas.
Por ejemplo .. no sería:
switch($accion)
sino
switch($_GET['accion'])
ó
switch($_POST['accion'])
Eso entre otras variables que llegan en forma "externa" a tu script.
Esta es "demasiado" para este tipo de tarea que se trata de convertir los sáltos de línea en sus tag's HTML corespondientes:
$mensaje = ereg_replace("\r\n","<br>", $mensaje);
Debería simplemente usarse (que no usa el motor de expresiones regulares):
$mensaje = nl2br($mensaje);
Un saludo,