05/09/2004, 13:15
|
| | | Fecha de Ingreso: noviembre-2002 Ubicación: Cartago
Mensajes: 121
Antigüedad: 21 años, 5 meses Puntos: 0 | |
continuacion del codigo mail.class.php Código PHP: <?php class enviaMail { var $ContentType = "html/plain"; var $headers = ""; var $to; var $para = array(); var $de = ""; var $de_mail = ""; var $titulo = ""; var $mensajeHTML = ""; var $mensajeTEXT = ""; var $mensaje = ""; var $responderA = array(); var $cc = array(); var $archivos_adjuntos = array(); var $tipoMail = "html"; var $importancia_n = 2; var $importancia_l = ""; var $sender = "[email protected]"; var $attach = ""; // Esta funcion agrega recipients a la lista de mail. function cambia_direccion ($mail, $nombre = "", $prioridad = 2) { $this->to = $mail; } function agrega_direccion($mail, $nombre = "", $prioridad = 2) { $cur = count($this->para); $this->para[$cur][0] = trim($mail); $this->para[$cur][1] = $mail; $this->para[$cur][2] = $prioridad; } // Esta funcion agrega a quien responder function responder_a($mail, $nombre = "") { $cur = count($this->responderA); $this->responderA[$cur][0] = trim($mail); $this->responderA[$cur][1] = $nombre; } function cc_a($mail, $nombre = "") { $cur = count($this->cc); $this->cc[$cur][0] = trim($mail); $this->cc[$cur][1] = $nombre; } function tipò_mensaje($tipo) { if ($tipo == "html") { $this->tipoMail = "text/html;\n\t charset=\"iso-8859-15\"\n"; } else { $this->tipoMail = "text/plain;\n\t charset=\"iso-8859-15\"\n"; } } function Ingresa_html ($msghtml) { $msghtml = $msghtml?$msghtml:preg_replace("/\n/", "{br}", $msghtml) or die("neither text nor html part present."); $msghtml = stripcslashes($msghtml); $msghtml = chunk_split(base64_encode($msghtml)); $this->mensajeHTML = $msghtml; } function ingresa_plain($msgplain) { $msgplain = stripcslashes($msgplain); $this->mensajeTEXT = $msgplain; } // Aqui agrego un archivo ajunto al mensaje function importancia($nivel = 1) { switch ($nivel) { case 1: $this->importancia_n = 1; $this->importancia_l = "high"; break; case 2: $this->importancia_n = 2; $this->importancia_l = "medium"; break; case 3: $this->importancia_n = 3; $this->importancia_l = "low"; break; default: ; } // switch } // Agrego los archivos adjuntos function agrega_adjunto($dir_uploads) { // Abrimos el directoriorio donde estan los archivos adjuntos por default uploads. $dir = opendir($dir_uploads); $Msg = ""; while ($archivo = readdir($dir)) { if (($archivo != ".") and ($archivo != "..")) { $Msg .= "\n------=_OuterBoundary_000\n"; $Msg .= "Content-Type: application/octetstream;\n\tname=\"" . $archivo . "\"\n"; $Msg .= "Content-Transfer-Encoding: base64\n"; $Msg .= "Content-Disposition: attachment;\n\tfilename=\"" . $archivo . "\"\n\n"; $fd = fopen ("uploads/" . $archivo, "r"); $FileContent = fread($fd, filesize("uploads/" . $archivo)); fclose ($fd); $FileContent = chunk_split(base64_encode($FileContent)); $Msg .= $FileContent; $Msg .= "\n\n"; // Elimino el archivo para liberar espacio } //if } // while return $Msg; } function borrar_adjuntos($dir_uploads) { $dir = opendir($dir_uploads); while ($archivo = readdir($dir)) { if (($archivo != ".") and ($archivo != "..")) { @unlink ("$dir_uploads/$archivo"); } } unset($_SESSION['file']); } // Aqui creo los headers necesarios para el envio del mail... function crea_headers () { $headers = "From: $this->de <$this->de_mail>\n"; $headers .= "Reply-To: $this->de <$this->de_mail>\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/mixed;\n\t boundary=----=_OuterBoundary_000\n"; $headers .= "X-Sender: $this->de <$this->de_mail\n"; $headers .= "X-Mailer: HIaMailSender @ Fnatasias Ecologicas\n"; $headers .= "X-Priority: $this->importancia_n\n"; $headers .= "X-MSMail-Priority: $this->importancia_l\r\n"; $headers .= "Return-Path: <$this->de_mail>\n"; $headers .= "This is a multi-part message in MIME format.\n"; if (count($this->cc) > 0) { $cc = ""; for($i = 0; $i < count($this->cc); $i++) { if ($i != 0) { $cc .= ", "; } $cc .= "Cc: " . $this->cc[$i][0]; if ($this->cc[$i][1] != "") { $cc .= " <{$this->cc[$i][1]}>"; } } } $headers .= "\r\n"; $this->headers = $headers; } // Esta funcion formatea el mensaje dependiendo de lo que haya en buffer?? function crea_titulo($titulo) { $this->titulo = $titulo; } function crea_cuerpo() { $OB = "----=_OuterBoundary_000"; $IB = "----=_InnerBoundery_001"; $Msg = "This is a multi-part message in MIME format.\n"; $Msg .= "\n--" . $OB . "\n"; $Msg .= "Content-Type: multipart/alternative;\n\t boundary=\"" . $IB . "\"\n\n"; // plaintext section $Msg .= "\n--" . $IB . "\n"; $Msg .= "Content-Type: text/plain;\n\tcharset=\"iso-8859-1\"\n"; $Msg .= "Content-Transfer-Encoding: quoted-printable\n\n"; // plaintext goes here $Msg .= $this->mensajeTEXT . "\n\n"; // html section $Msg .= "\n--" . $IB . "\n"; $Msg .= "Content-Type: text/html;\n\tcharset=\"iso-8859-15\"\n"; $Msg .= "Content-Transfer-Encoding: base64\n\n"; // html goes here $Msg .= $this->mensajeHTML . "\n\n"; // end of IB $Msg .= "\n--" . $IB . "--\n"; // attachments // if ($this->attach != "") { // echo "<script> alert (\"Si hay archivos adjuntos\")</script>"; $Msg .= enviaMail::agrega_adjunto("uploads"); // message ends $Msg .= "\n--" . $OB . "--\n"; //$this->mensaje = $Msg; $new_pointer = fopen("mail_data.dat","a+"); $pone = fwrite($new_pointer, $Msg); fclose($new_pointer); } function envia_mail () { // $to = ""; // for($i = 0; $i < count($this->para); $i++) { // if ($i != 0) { // $to .= ", "; // } // $to .= $this->para[$i][0]; // } // Obtengo el valor del sender a travez del php.ini $new_from = $this->sender; $old_from = ini_get("sendmail_from"); // Lo cambio por lo que quiera ini_set("sendmail_from", $new_from); ini_set("max_execution_time", 60); //echo "<script>alert (\"$to\") </script>"; $puntero = fopen("mail_data.dat","r"); $this->mensaje = fread($puntero, filesize("mail_data.dat")); fclose($puntero); mail($this->to, $this->titulo, $this->mensaje, $this->headers); ini_set("sendmail_from", $old_from); //$this->mensaje = ""; } } ?> Que errores puede haber trate usando archivos a tipo de buffer pero era ugual no se envian los correos o llegan si los adjuntos. En mi servidor loca l si que funciona....... no se que hacer es urgente
por si las dudaes las pruebas las hago en trypod.lycos.es no se si tendra algo que ver que nno funque
__________________ Siempre hay algo nuevo que aprender |