tutti i messaggi del tipo:
Non-static method Mail::factory()

sono dovuti al fatto che in mail.php nella classe Mail tutti i metodi(funzioni della classe) che stai usando non sono "statici" vale a dire che non sono dichiarati come "static function factory()" e via dicendo.

Puoi richiamare quelle funzioni istanziando la classe Mail in questo modo:
$Mail = new Mail();

e usando le funzioni chiamandole con:
$Mail->factory();

require_once "Mail.php" richiede un unico inserimento del file Mail.php, il quale ha una classe Mail al suo interno che viene usata per inviare le email... Se non hai pratica nell'usare le classi ti consiglio la guida PHP5 OOP (Object Oriented Programming) di questo sito, si impara molto velocemente