/** * 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; }
<?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());