Aqui tengo un Articulo llamado
Respaldo de BD Mysql el cual utiliza Dos Clases, una para crear el Backup de la Base de Datos (comprimida) y luego otra Clase que envia dicho Archivo al Correo electronico.
Funciona muy bien, ya que lo tengo aplicado a varios proyectos, y lo tengo configurado con un cron, para que me haga respaldo cada semana, en otros cada dia, etc ...
Saludos