
23/03/2009, 06:37
|
| | Fecha de Ingreso: diciembre-2008
Mensajes: 21
Antigüedad: 16 años, 3 meses Puntos: 0 | |
Respuesta: Problemas con include Éste es el include class.mail.php que me muestra por pantalla:
Código:
<?
//-------------------------------------------------------------------------------
// PROYECTO: XControlCore
// ARCHIVO: class.mail.php
//
//
//-------------------------------------------------------------------------------
// DESCRIPCION: Nueva gestion de correo electronico descargando a servidor SQL
// de la gestion de las colas de correo
//
//-------------------------------------------------------------------------------
class mail4 {
// Definicion de porpiedades
var $from_email;
var $from_name;
var $to_email = array();
var $subject;
var $body;
var $isHTML;
var $rutaRAW;
// Definicion del constructor
function mail4($ruta='') {
if($ruta!='') $this->rutaRAW = $ruta;
else $this->rutaRAW = SYS_RUTARAW;
return;
}
// Métodos de la clase
/**
* Mete el email en la cola
*/
function encolar() {
$ors = new oRS('email_log');
$ors->depura=1;
for($i=0;$i<count($this->to_email);$i++) {
$ors->c['from_name'] = (string) $this->from_name;
$ors->c['from_email'] = (string) $this->from_email;
$ors->c['subject'] = (string) $this->subject;
$ors->c['to_email'] = (string) $this->to_email[$i];
$ors->c['body'] = (string) $this->body;
$ors->c['isHTML'] = (isset($this->isHTML)) ? $this->isHTML : 0;
$ors->c['enviado'] = (int) 0;
$ors->c['error'] = (int) 0;
$ors->insert();
$ors->reset('email_log');
}
}
/**
* Procesa la cola y realiza todos los envios via Mdaemon
*/
function procesarCola() {
$cola = array();
$ors = new oRS();
$ors->select("select top 20 id,from_name,from_email,subject,to_email,isHTML,body from email_log where enviado = 0");
if(!$ors->EOF) {
while(!$ors->EOF) {
// Código para tratar el recordset
$cola[] = $ors->c;
$ors->moveNext();
}
}
$mens = count($cola);
for($i=0;$i<$mens;$i++) {
// Creamos el contenido del archivo de acuerdo con el formato RAW de MDAEMON
$nombre = md5($cola[$i]['to_email'] . time() . md5(rand(1,100)));
$rawstr = "header <XcontrolID: $nombre>" .chr(13).chr(10);
if($cola[$i]['isHTML']) {
$rawstr .= "header <MIME-Version: 1.0>".chr(13).chr(10);
$rawstr .= "header <Content-Type: text/html>".chr(13).chr(10);
}
$rawstr .= "From \"{$cola[$i]['from_name']}\" <{$cola[$i]['from_email']}>" .chr(13).chr(10);
$rawstr .= "To <{$cola[$i]['to_email']}>".chr(13).chr(10);
$rawstr .= "Subject <{$cola[$i]['subject']}>".chr(13).chr(10);
$rawstr .= chr(13).chr(10) . $cola[$i]['body'];
// Creamos el archivo en la carpeta temporal
$nombre .= ".raw";
$fp = fopen('rawtmp\\' . $nombre,"w+");
fwrite($fp,$rawstr,strlen($rawstr));
fclose($fp);
// Copiar el archivo a la carpeta de Rawfiles
copy('rawtmp\\' . $nombre,$this->rutaRAW . $nombre);
// Insertamos una entrada en email_log para dejar constancia del envio
$ors->depura=1;
$ors->reset('email_log');
$ors->c['enviado'] = 1;
$ors->c['archivo'] = $nombre;
$ors->c['id'] = (int) $cola[$i]['id'];
$ors->update('id');
} // for
} // function
/**
* Inicializa las propiedades del objeto
*/
function reset() {
$this->from_email = "";
$this->from_name = "";
$this->to_email = array();
$this->subject = "";
$this->body = "";
$this->isHTML = 0;
}
function enviar() {
global $rutaRAW;
// Se introduce el email en la cola, una estrada para cada entrada en
// $to_email
for($i=0;$i<count($this->to_email);$i++) {
// Creamos el contenido del archivo de acuerdo con el formato RAW de MDAEMON
$nombre = md5($this->to_email[$i] . time());
$rawstr = "header <XcontrolID: $nombre>" .chr(13).chr(10);
$rawstr .= "From <{$this->from_email}>" .chr(13).chr(10);
$rawstr .= "To <{$this->to_email[$i]}>".chr(13).chr(10);
$rawstr .= "Subject <{$this->subject}>".chr(13).chr(10);
if($this->isHTML) {
$rawstr .= "MIME-Version: 1.0".chr(13).chr(10);
$rawstr .= "Content-Type: text/html".chr(13).chr(10);
}
$rawstr .= chr(13).chr(10) . $this->body;
// Creamos el archivo en la carpeta temporal
$nombre .= ".raw";
$fp = fopen('rawtmp\\' . $nombre,"w+");
fwrite($fp,$rawstr,strlen($rawstr));
fclose($fp);
// Copiar el archivo a la carpeta de Rawfiles
copy('rawtmp\\' . $nombre,$this->rutaRAW . $nombre);
// Insertamos una entrada en email_log para dejar constancia del envio
// TODO: En un futuro se podrian eliminar las referencias al body etc, ya que como tod esta en el archivo no seria necesario y estamos duplicando tontamente informacion
$ors = new oRS('email_log');
$ors->c['from_name'] = (string) $this->from_name;
$ors->c['from_email'] = (string) $this->from_email;
$ors->c['subject'] = (string) $this->subject;
$ors->c['to_email'] = (string) $this->to_email[$i];
$ors->c['body'] = (string) $this->body;
$ors->c['isHTML'] = (isset($this->isHTML)) ? $this->isHTML : 0;
$ors->c['archivo'] = (string) $nombre;
$ors->c['enviado'] = (int) 1;
$ors->c['error'] = (int) 0;
$ors->insert();
} // for
}
//function obtenerinfoarchivo() para cuando hayan errores
}
?>
|