* @version $Id$ * @access public * @license http://opensource.org/licenses/gpl-3.0.html */ /** * @param array $emailContainer * @return boolean True if sent, else false */ function send_email($emailContainer) { require_once '../lib/vendor/swift/lib/swift_required.php'; // We create the Transport if (defined ( 'MAIL_MAILER' )) { // by default $transport = Swift_MailTransport::newInstance (); // sendmail if (MAIL_MAILER == 'sendmail') { $transport = Swift_SendmailTransport::newInstance ( MAIL_SENDMAIL ); } // smtp if (MAIL_MAILER == 'smtp') { if (defined ( 'MAIL_SMTP_AUTH' ) && MAIL_SMTP_AUTH == 1) { $transport = Swift_SmtpTransport::newInstance ( MAIL_HOST, MAIL_PORT )->setUsername ( MAIL_SMTP_USER )->setPassword ( MAIL_SMTP_PASS ); } else { $transport = Swift_SmtpTransport::newInstance ( MAIL_HOST, MAIL_PORT ); } } } // echo "destinataire : ".$emailContainer['recipient']."
"; // echo "sujet : ".$emailContainer['subject']."
"; // echo "body : ".$emailContainer['html_body']."
"; // echo "body (txt) : ".$emailContainer['txt_body']."
"; // Create the Mailer using the Transport $mailer = Swift_Mailer::newInstance ( $transport ); isset ( $emailContainer ['from'] ) ? $from = $emailContainer ['from'] : $from = MAIL_FROM; isset ( $emailContainer ['from_name'] ) ? $fromname = $emailContainer ['from_name'] : $fromname = MAIL_FROMNAME; // $replyto must be an array() isset ( $emailContainer ['reply_to'] ) ? $replyto = $emailContainer ['reply_to'] : $replyto = array( MAIL_REPLY => MAIL_REPLYNAME ); $emailContainer ['txt_body'] = str_replace ( '&', '&', $emailContainer ['txt_body'] ); // if only one email is given we put it an array if (is_string ( $emailContainer ['recipient'] )) { $tmp = $emailContainer ['recipient']; $emailContainer ['recipient'] = array (); array_push ( $emailContainer ['recipient'], $tmp ); } // Create a message $message = Swift_Message::newInstance ( $emailContainer ['subject'] )->setFrom ( array ( $from => $fromname ) )->setBody ( $emailContainer ['html_body'], 'text/html' )->addPart ( $emailContainer ['txt_body'], 'text/plain' )->setReplyTo ( $replyto ); if (is_array ( $emailContainer ['recipient'] )) { for($i = 0; $i < count ( $emailContainer ['recipient'] ); $i ++) { $message->setTo ( $emailContainer ['recipient'] [$i] ); $r = $mailer->Send ( $message, $failures ); if (! $r) { $logmsg = 'not sent'; } else { $logmsg = 'sent'; } logfile ( LOG_MAILER, array ( $emailContainer ['subject'], $emailContainer ['recipient'] [$i], $logmsg ) ); if (! $r && MOD_DEBUG == 1) { _debug ( 'Mail has not been sent. "' . $emailContainer ['recipient'] [$i] . ' / ' . $emailContainer ['subject'] . '" : ' . $logmsg ); } } } if (! $r) return false; else return true; } ?>