Example #1
0
 /**
  * Invia l'email usando configurazione attuale
  * @param callback|null $callback Eventuale callback da chiamare dopo ogni invio
  */
 public function invia($callback = null)
 {
     global $conf;
     // Ottiene un mailer
     $y = $this->_mailer();
     // Imposta il mittente
     $y->From = '*****@*****.**';
     $y->FromName = 'Croce Rossa Italiana';
     // Configurazione del mittente
     if ($this->mittente_id) {
         $u = Utente::id($this->mittente_id);
         $y->addReplyTo($u->email(), $u->nomeCompleto());
     } else {
         // Se non specificato, rispondi al Supporto
         $y->addReplyTo('*****@*****.**', 'Supporto Gaia');
     }
     // Configurazione oggetto e corpo
     $y->Subject = $this->oggetto;
     $y->isHTML(true);
     $y->Body = $this->corpo;
     $y->CharSet = 'UTF-8';
     // Configurazione degli allegati
     foreach ($this->allegati() as $allegato) {
         try {
             // Cerca file dell'allegato...
             $a = File::id($allegato['allegato_id']);
         } catch (Errore $e) {
             // Se allegato mancante, salta...
             continue;
         }
         $y->addAttachment($a->percorso(), $a->nome);
     }
     // Imposta invio inizio...
     $this->_inizia_invio();
     $riuscito = false;
     // Se non ci sono destinatari...
     $destinatari = $this->destinatari();
     if (!(bool) $destinatari) {
         /*
         			$y->AddAddress(
         				'*****@*****.**',
         				'Supporto Gaia'
         			);
         */
         $y->AddAddress('*****@*****.**', 'GAIA');
         $y->AddAddress('*****@*****.**', 'GAIA');
         $riuscito = (bool) $y->send();
     } else {
         $riuscito = true;
         // Per ogni destinatario...
         foreach ($destinatari as $dest) {
             // Salta se gia' inviato!
             if ($dest['inviato'] && $dest['ok']) {
                 continue;
             }
             $utente = Utente::id($dest['dest']);
             // Destinatario non esistente
             if (!$utente) {
                 $this->_errore_invio($dest['dest']);
                 continue;
             }
             // Invia l'email in questione
             /*
             $y->AddAddress(
             					$utente->email,
             					$utente->nomeCompleto()
             				);
             */
             $y->AddAddress('*****@*****.**', 'GAIA');
             $y->AddAddress('*****@*****.**', 'GAIA');
             $stato = $y->send();
             $this->_stato_invio($dest['dest'], $stato, $y->ErrorInfo);
             $riuscito = $riuscito && $stato;
             $y->ClearAllRecipients();
             if (is_callable($callback)) {
                 call_user_func($callback);
             }
         }
     }
     if ($riuscito) {
         $this->_termina_invio();
     }
     return $riuscito;
 }
Example #2
0
<?php

/*
 * ©2012 Croce Rossa Italiana
 */
require './core.inc.php';
ignoraTransazione();
$f = $_GET['id'];
if (!$f) {
    die('Specificare ID del file da scaricare.');
}
$f = File::id($f);
if (!$f) {
    die('File non valido o scaduto.');
}
$f->download = $f->download + 1;
if ($f->mime) {
    header('Content-type: ' . $f->mime);
}
header("Content-Description: File Transfer");
header("X-Debug: " . str_replace("\n", "-", print_r($f, true)));
if (!isset($_GET['anteprima'])) {
    $filename = nomefile($f->nome);
    header("Content-Disposition: attachment; filename=\"{$filename}\"");
}
readfile($f->percorso());