/** * Envia un email * * @param email_adress $para La dirección del destinatario * @param string $asunto El texto del asunto * @param string $mensaje El texto de mensaje * @param email_adress $de La dirección del remitente. Opcional * @param string $deNombre El nombre del remitente. Opcional * @param array $conCopia Destinatarios con copia. Opcional * @param array $conCopiaOculta Destinatarios con copia oculta. Opcional * @param array $adjuntos Array con los nombres de los ficheros adjuntos. Opcional * @return string Mensaje de exito o fracaso al enviar */ public function send($para, $asunto, $mensaje, $de = '', $deNombre = '', $conCopia = '', $conCopiaOculta = '', $adjuntos = array()) { if ($this->valida($para, $mensaje)) { if ($de == '') { $de = $this->config['from']; } if (trim($de) != '') { $this->mailer->From = $de; } if ($deNombre == '') { $deNombre = $this->config['from_name']; } if (trim($deNombre) != '') { $this->mailer->FromName = $deNombre; } // Create a message $message = Swift_Message::newInstance($asunto)->setContentType('text/html')->setFrom(array($de => $deNombre))->setTo(array($para))->setReadReceiptTo($de)->setPriority(2)->setBody($mensaje); if ($conCopia) { if (is_array($conCopia)) { $message->setCc($conCopia); } else { $message->setCc(array($conCopia)); } } if ($conCopiaOculta) { if (is_array($conCopiaOculta)) { $message->setBcc($conCopiaOculta); } else { $message->setBcc(array($conCopiaOculta)); } } foreach ($adjuntos as $adjunto) { if (trim($adjunto)) { $message->attach(Swift_Attachment::fromPath($adjunto)); } } $nEnvios = $this->mailer->send($message); if (!$nEnvios) { $this->mensaje[] = "Fallo al enviar a {$para}."; } } $ok = count($this->mensaje) == 0; if ($this->config['save_sends']) { // Anotar en la bandeja de salida // ------------------------------------------------- $mailBox = new EmailBox(); $mailBox->setIp($_SERVER['REMOTE_ADDR']); $mailBox->setDe($de); $mailBox->setPara($para); $mailBox->setCC($conCopia); $mailBox->setCCO($conCopiaOculta); $mailBox->setAsunto($asunto); $mailBox->setMensaje($mensaje); $mailBox->setAdjuntos(json_encode($adjuntos)); $mailBox->setOk($ok); $mailBox->setSmtp(json_encode($this->config)); $mailBox->setObservations(json_encode($this->mensaje)); $mailBox->create(); unset($mailBox); //-------------------------------------------------- } return $ok; }