require("Email.phtml");
$mensaje = new Correo();
$mensaje->Tema = "Hi everybody Hola ";
$mensaje->Encabezados["Reply-To"] = "somebody@hotmail.com";
$mensaje->Encabezados["X-Extra-Header"] = "Pointless Header v3.0";
$mensaje->Cuerpo = "Subject or Este es el cuerpo del Mensaje\n";
$mensaje->Archivos[0] = "portada1.jpg";
$mensaje->Archivos[1] = "photos.gif";
// Ahora envio el mensaje
$mensaje->Enviar();
?>
# THIS is the class... Esta es la funcion:
#------------------------------------------------------------------
/* DEFINO LAS VARIABLES A UTILIZAR */
class Correo {
var $Dequien; // Email de la persona que envia el correo
var $Aquienva; // Email de la persona a la que va el correo
var $Tema; // Tema o Encabezado del Mensaje
var $Encabezados; // Es un "hash" de encabezados adicionales donde
// NombreDelEncabezado => ValordelEncabezado
var $Archivos; // Un Arreglo de los archivos anexos o pegados
var $Cuerpo; // Es el cuerpo del Mensaje
// Funcion que me inicializa las variables
function Correo() {
$this->Dequien = "";
$this->Aquienva = "";
$this->Tema = "";
$this->Encabezados = array();
$this->Archivos = array();
$this->Cuerpo = "";
}
// Funcion que me dice que tipo MIME es; cuantos tipos hay ? NO LO SE
function Tipomime ($Archivo) {
$Archivo = basename($Archivo);
if(strrchr($Archivo,".") == false) {
return("application/octet-stream");
}
$Ext = strrchr($Archivo,".");
echo ("La extencion es: $Ext");
switch($Ext) {
case ".gif":
return "IMAGE/gif";
break;
case ".gz":
return "APPLICATION/x-gzip";
case ".htm":
case ".html":
return "TEXT/html";
break;
case ".jpg":
return "IMAGE/jpeg";
break;
case ".tar":
return "APPLICATION/x-tar";
break;
case ".txt":
return "TEXT/PLAIN";
break;
case ".zip":
return "APPLICATION/zip";
break;
default:
return "APPLICATION/octet-stream";
break;
} // Del Switch
} // De la Funcion TipoMime
// Funcion principal que enviara el mensaje
function Enviar() {
$Ruta_a_sendmail = "/usr/lib/sendmail";
$fp = popen( "$Ruta_a_sendmail -t", "w");
$num = fputs($fp, "To: $this->Aquien \n");
$num += fputs($fp, "From: $this->Dequien\n");
$num += fputs($fp, "Subject: $this->Tema\n");
//Escribo ahora los encabezados
reset($this->Encabezados);
while(list($Encanombre,$Encavalor) = each($this->Encabezados)) {
fwrite($fp,$Encanombre . ": " . $Encavalor . "\n");
}
//Verifico si van archivos Anexos
if(count($this->Archivos) > 0) {
//Escribo los encabezados o formato usado por MIME
fwrite($fp,"MIME-Version: 1.0\n");
fwrite($fp,"Content-Type: MULTIPART/MIXED; BOUNDARY=\"583556639-846026301-
931902235=:11839\"\n");
fwrite($fp,"Status: RO\n");
fwrite($fp,"X-Status:\n");
fwrite($fp," This message is in MIME format. The first part should be readable text,\n");
fwrite($fp," while the remaining parts are likely unreadable without MIME-aware tools.\n");
fwrite($fp," Send mail to mime@docserver.cac.washington.edu for more info.\n");
fwrite($fp,"\n");
//Ahora escribo el mensaje
fwrite($fp,"--583556639-846026301-931902235=:11839\n");
fwrite($fp,"Content-Type: TEXT/PLAIN; charset=US-ASCII\n");
fwrite($fp,"\n");
fwrite($fp,$this->Cuerpo);
fwrite($fp,"\n");
// Ahora proceso cada uno de los archivos anexos
while(list($key, $Archivos_name) = each($this->Archivos)) {
fwrite($fp,"--583556639-846026301-931902235=:11839\n");
fwrite($fp,"Content-Type: " . $this->Tipomime($Archivos_name) . "; name=\"" .basename
($Archivos_name) . "\"\n");
fwrite($fp,"Content-Transfer-Encoding: BASE64\n");
fwrite($fp,"Content-ID:\n");
fwrite($fp,"Content-Description:\n");
fwrite($fp,"\n");
// Ahora lo convierto
$pp = popen("mimencode -b $Archivos_name","r");
while(!feof($pp)) {
$datos = fread($pp,4096);
fwrite($fp,$datos);
}
pclose($pp);
}
fwrite ($fp,"--583556639-846026301-931902235=:11839--");
} else {
// No existen archivos adjuntos
fwrite ($fp,"\n");
fwrite ($fp,"$this->Cuerpo");
}
pclose($fp);
} // Termina la Funcion enviar
} // De la clase Correo
// TERMINA EL CODIGO PHP
?>