]> git.llucax.com Git - software/sercom-old.git/blobdiff - src/sc_fetch
Se agrega un manejador de excepciones que loguea.
[software/sercom-old.git] / src / sc_fetch
index 3455028ed238077d8aefbf7ab92858e149f9abe4..7a1e407a34450eef7118312c851a30bbbbb72c37 100755 (executable)
@@ -1,6 +1,9 @@
 #!/usr/bin/php4
 <?php // vim: set binary noeol et sw=4 sts=4:
 
+// Incluyo directorio del ejecutable como posible directorio de bibliotecas
+set_include_path(get_include_path().':'.dirname($argv[0]));
+
 require_once 'T/general.php';
 
 define('R_ERR', 0);
@@ -13,7 +16,7 @@ $mconf = $CONF['mail'];
 $gconf = $CONF['general'];
 
 $mailbox = @$mconf['mailbox'];
-switch (@$mconf['protocol'] ? $mconf['protocol'] : 'mbox') {
+switch (@$mconf['protocol']) {
     case 'mbox':
         $mailbox = $mconf['server'];
         break;
@@ -73,7 +76,7 @@ while (1) {
     // Reseteo intervalo
     $intervalo = $gconf['intervalo'];
     // Abro mailbox o chillo.
-    if (!($mbox = imap_open($mailbox, @$mconf['user'], @$mconf['pass']))) {
+    if (!($mbox = @imap_open($mailbox, @$mconf['user'], @$mconf['pass']))) {
         if ($mbox_errcount * $intervalo > 120) { // 2 horas sin poder conectarse
             logs('Hace 2 horas que no se puede conectar al servidor ('.imap_last_error().')', ERROR);
             $mbox_errcount = 0;
@@ -158,7 +161,7 @@ imap_close($mbox);
 
 function enviar_respuesta($tipo, $to, $mensaje = '', $intento = null) {
     global $mconf;
-    $subject = '[' . strtoupper($NAME) . '] Entrega ';
+    $subject = '[' . $mconf['prefijo'] . '] Entrega ';
     if ($tipo == R_OK) $estado = 'ACEPTADA';
     else               $estado = 'RECHAZADA';
     $subject .= $estado;
@@ -169,6 +172,7 @@ function enviar_respuesta($tipo, $to, $mensaje = '', $intento = null) {
     $headers = <<<EOT
 From: {$mconf['from']}
 Reply-To: {$mconf['admin']}
+Return-Path: {$mconf['admin']}
 X-Mailer: $NAME $VERSION
 X-Priority: 5
 EOT;
@@ -189,14 +193,14 @@ function validar_cabecera($hdr) {
 
 function preparar_entrega($intento, $mbox, $msgid, $dir) {
     logs('Acá debería verificar el cuerpo del mensaje', DEBUG);
+    $path = "$dir/" . $intento->path('intentos');
     $mail = imap_fetchstructure($mbox, $msgid);
+    if (!mkdir_p($path)) return 'No se pudo crear el directorio';
     foreach ($mail->parts as $id => $part) {
         $fname = part_filename($part);
         if ($fname) {
             logs("Escribiendo archivo '$fname' [enc={$part->encoding}]", DEBUG);
             $body = imap_fetchbody($mbox, $msgid, $id + 1);
-            $path = "$dir/" . $intento->path('intentos');
-            if (!mkdir_p($path)) return 'No se pudo crear el directorio';
             if (!file_put_contents("$path/$fname", decode_body($body, $part->encoding))) return "Error al guardar el archivo $fname";
         }
         //if (part_is_source($part) $has_sources = true;