Revision 1 | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed
<?php//$Id: mail_func.php 4221 2012-02-21 11:19:57Z tiefland $/*** @author Lars Tiefland <tiefland@weban.de>* @copyright 2009 Webagentur Niewerth* @package content-management* @version $Rev: 4221 $* @license propietary* @filesource**//**** @author Lars Tiefland <tiefland@weban.de>* @copyright 2009 Webagentur Niewerth* @package content-management*/require_once "fpdf/fpdf.php";class PDF extends FPDF{//Page headerfunction Header(){}//Page footerfunction Footer(){}}function create_html_pdf( $bestell_id, $adminMail, $mailto, $body, $art,$ln = 1 ){global $webs, $site;$date = date( "Y-m-d_H-i" );$f_name = $art . "_" . $bestell_id . "_" . $date . "_" . $ln .".html";$f_name = str_replace( "ä", "ae", $f_name );$f_name = str_replace( "Ä", "Ae", $f_name );$f_name = str_replace( "ö", "oe", $f_name );$f_name = str_replace( "Ö", "Oe", $f_name );$f_name = str_replace( "ü", "ue", $f_name );$f_name = str_replace( "Ü", "Ue", $f_name );$f_name = str_replace( "ß", "ss", $f_name );$f = fopen( $webs['verzeichnis'] . "/images/dokumente/" . $f_name,"w" );fwrite( $f, $body );fclose( $f );$sql = "REPLACE INTOdokumente(table_foreign,row_foreign,data_foreign,document,letzte_Aenderung_am,letzte_Aenderung_von)VALUES('Bestellung','ID',$bestell_id,'$f_name',NOW(),'" . $_SERVER["PHP_AUTH_USER"] . "')";$res = mysql_query( $sql );if ( !$res ){mail( "admin@weban.de","Fehler beim hinzufgen der PDF-Datei zur Bestellung!",mysql_error() . "\n$sql", "From: redaktion@$site" );$ret = false;}else{$ret = mysql_insert_id();}return $ret;}function create_pdf( $bestell_id, $adminMail, $mailto, $body, $art, $ln =1 ){global $webs, $site;//Instanciation of inherited class$pdf = new PDF();$sql = "SELECTshops_IDFROMBestellungWHEREID=$bestell_id";$res = mysql_query( $sql );$row = mysql_fetch_assoc( $res );$shops_ID = $row["shops_ID"];require_once"/web/apache/content-management/Warenwirtschaft/includes/rechnung/body_$site.inc.php";$pdf->setSubject( "E-Mail zur Bestellung " . $_GET["Bestellung"] );$pdf->setAuthor( $haendler_name );$pdf->setCreator( "fpdf PHP Library" );$pdf->AliasNbPages();$pdf->AddPage();$pdf->setY( 45 );$pdf->setFont( 'Arial', '', 10 );$pdf->multicell( 0, 4, "$body", "", "L", 0 );$date = date( "Y-m-d_H-i-s" );$f_name = $art . "_" . $bestell_id . "_" . $date . "_" . $ln .".pdf";$f_name = str_replace( "ä", "ae", $f_name );$f_name = str_replace( "Ä", "Ae", $f_name );$f_name = str_replace( "ö", "oe", $f_name );$f_name = str_replace( "Ö", "Oe", $f_name );$f_name = str_replace( "ü", "ue", $f_name );$f_name = str_replace( "Ü", "Ue", $f_name );$f_name = str_replace( "ß", "ss", $f_name );$pdf->Output( $webs['verzeichnis'] . "/images/dokumente/$f_name" );$sql = "REPLACE INTOdokumente(table_foreign,row_foreign,data_foreign,document,letzte_Aenderung_am,letzte_Aenderung_von)VALUES('Bestellung','ID',$bestell_id,'$f_name',NOW(),'" . $_SERVER["PHP_AUTH_USER"] . "')";$res = mysql_query( $sql );if ( !$res ){mail( "admin@weban.de","Fehler beim hinzufgen der PDF-Datei zur Bestellung!",mysql_error() . "\n$sql", "From: redaktion@$site" );$ret = false;}else{$ret = mysql_insert_id();}return $ret;}function generate_LN( $bestell_id, $art ){$date = date( "Y-m-d_H-i-s" );$f_name = $art . "_" . $bestell_id . "_" . $date;$f_name = str_replace( "ä", "ae", $f_name );$f_name = str_replace( "Ä", "Ae", $f_name );$f_name = str_replace( "ö", "oe", $f_name );$f_name = str_replace( "Ö", "Oe", $f_name );$f_name = str_replace( "ü", "ue", $f_name );$f_name = str_replace( "Ü", "Ue", $f_name );$f_name = str_replace( "ß", "ss", $f_name );$sql = "SELECTMAX(document) AS dokumentFROMdokumenteWHEREdocument LIKE '$f_name%'";$res = mysql_query( $sql );if ( $res ){if ( mysql_num_rows( $res ) ){$row = mysql_fetch_assoc( $res );$dokument = substr( $row["dokument"], 0, strlen( $row["dokument"] ) -4 );$dokument = explode( "_", $dokument );$ln = $dokument[count( $dokument ) - 1];$ln++;}else{$ln = 1;}}else{$ln = 1;}return $ln;}function send_email( $to, $subject, &$body, $extra = array() ){require_once "PEAR.php";PEAR::setErrorHandling( PEAR_ERROR_CALLBACK, 'errorHandler' );if ( !defined( "CRON" ) ){define( "CRON", false );}global $web_rechte;$headers = "";$params = "";$vorlage = false;if ( array_key_exists( "headers", $extra ) ){$headers = $extra["headers"];if ( $_SESSION["U_EMAIL"] ){$headers["From"] = $_SESSION["U_EMAIL"];}$headers["Return"] = preg_replace( "/.*<(.*)>/", "$1", $headers["From"] );/*$test = preg_split( "/<|>/", $headers["From"] );$name = trim( $test[0] );$email = $test[1];*//*$headers["From"] = sprintf( '=?ISO-8859-1?Q?%s <%s>', imap_8bit( $name ), $email );*///$from = preg_replace( "/(.*)<(.*)>/", "'$1' <$2>", $headers["From"] );}if ( array_key_exists( "params", $extra ) ){$params = $extra["params"];}$sql = "SELECT*FROMshopsWHEREID='" . $extra["shops_ID"] . "'";$res = mysql_query( $sql );$row = mysql_fetch_assoc( $res );if ( $row["mail_server"] ){$smtp_opts = array( "host" => $row["mail_server"], "port" =>"25", "auth" => true, "username" => $row["mail_user"],"password" => $row["mail_passwort"] );define( "__USE_SMTP__", true );}else{define( "__USE_SMTP__", false );}//weban_debug($smtp_opts);$sql = "SELECT*FROMweb_settingsWHEREshops_ID=" . $extra["shops_ID"] . "ANDID=1000";if ( isset( $_web_rechte["Warenwirtschaft"]["bestellung"]["bestellart"] ) ){$sql .= "ANDbestellart_id=1";}$res = mysql_query( $sql );if ( !$res && CRON ){//weban_debug( $extra );//weban_debug( mysql_error() . "\n$sql" );}if ( $_SERVER["REMOTE_ADDR"] == "89.245.130.99" ){if ( !$res ){die( mysql_error() . "<br>$sql<br>" );}}$num = mysql_num_rows( $res );if ( $num ){$row = mysql_fetch_assoc( $res );if ( $row["Inhalt"] ){$vorlage = true;}}if ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["html_emails"] ) &&$vorlage ){$shops_ID = ( int )$extra["shops_ID"];require_once "Weban_Smarty.class.php";require_once "Mail.php";require_once "Mail/mime.php";$crlf = "\n";$recipients = array( $to, );$mime = new Mail_mime( $crlf );if ( __USE_SMTP__ ){$mail = &Mail::factory( 'smtp', $smtp_opts );}else{$mail = &Mail::factory( 'sendmail' );}//weban_debug($mail);$text = '';$sql = "SELECTl.*FROMLogins lJOINBestellung bONb.Login=l.IDANDb.ID=" . ( int )$extra["bestellung"] . "";//ME:if ( $_SERVER["REMOTE_ADDR"] == "89.245.130.99" ){//echo "<br>sql: " . $sql;//echo "<br>body: " . $body;//weban_debug( "SQL: " . $sql );//weban_debug( "Body:" . $body );}$res = mysql_query( $sql );$Userdata = mysql_fetch_assoc( $res );$GLOBALS["ui"] = new Weban_Smarty();$GLOBALS["ui"]->compile_dir = $_SERVER["DOCUMENT_ROOT"] ."/templates_c/";$GLOBALS["ui"]->compile_id = "Warenwirtschaft|MailClient";$GLOBALS["ui"]->assign( "heading", $subject );$GLOBALS["ui"]->assign( "inhalt", stripslashes( $body ) );$GLOBALS["ui"]->assign( "Userdata", $Userdata );$GLOBALS["ui"]->assign( "to", $to );$GLOBALS["ui"]->assign( "bearbeiter_name", $_SESSION["USERNAME"] );$GLOBALS["ui"]->assign( "bearbeiter_email", $_SESSION["U_EMAIL"] );$GLOBALS["ui"]->assign( "bearbeiter_telefon", $_SESSION["U_TELEFON"] );$GLOBALS["ui"]->assign( "bearbeiter_fax", $_SESSION["U_FAX"] );$GLOBALS["ui"]->assign( "date", time() );$anlagen = array();if ( is_array( $_POST["document"] ) ){foreach ( $_POST["document"] as $document ){if ( file_exists( $document ) ){$mtype = mime_content_type( $document );$mime->addAttachment( $document, $mtype, basename( $document ) );$anlagen[] = basename( $document );}}}if ( is_array( $_FILES["document"] ) ){if ( array_key_exists( "tmp_name", $_FILES["document"] ) ){$document = $_FILES["document"];if ( !$document["error"] ){$mime->addAttachment( $document["tmp_name"], $document["type"],$document["name"] );}$anlagen[] = $document["name"];}else{foreach ( $_FILES["document"] as $document ){if ( !$document["error"] ){$mime->addAttachment( $document["tmp_name"], $document["type"],$document["name"] );$anlagen[] = $document["name"];}}}}//ob_start();$GLOBALS["ui"]->assign( "anlagen", $anlagen );$html = $GLOBALS["ui"]->fetch( "db:" . $shops_ID . "_1000" );//$html = ob_get_contents();//ob_end_clean();$text = strip_tags( $html, "<br><br />" );$text = str_replace( array( "<br>", "<br />" ), "\n", $text );$mime->setTXTBody( $text );$mime->setHTMLBody( $html );$hdrs = array( 'From' => $headers["Return"], 'Return-Path' => $headers["Return"],'Subject' => $subject, "To" => $to, "Date" => date( "r" ), );//weban_debug($hdrs);//do not ever try to call these lines in reverse order$text = $mime->get();$hdrs = $mime->headers( $hdrs, true );$res = $mail->send( $recipients, $hdrs, $text );//echo "Sende E-Mail<br>";//weban_debug( $res );$body = $html;}else{$res = mail( $to, $subject, $body, "FROM: " . $headers["From"],$params );}return $res;}function errorHandler( $error ){$message = $error->getUserInfo();if ( !$message ){$message = $error->getMessage();}if ( !empty( $error->backtrace[1]['file'] ) ){$message .= ' (' . $error->backtrace[1]['file'];if ( !empty( $error->backtrace[1]['line'] ) ){$message .= ' in Zeile ' . $error->backtrace[1]['line'];}$message .= ')';}var_dump( $message );mail_admin( $message );}function mail_admin( $message ){global $site;mail( "admin@weban.de", "Fehler auf redaktion.$site", $message,"From: info@$site" );}function checkHTMLVorlage( $shop_id, $bestellart_id = null ){$vorlage = false;$sql = "SELECT*FROMweb_settingsWHEREID=1000ANDshops_ID=" . $shop_id . "";if ( $bestellart_id ){$sql .= "ANDbestellart_id=1";}$res = mysql_query( $sql );$num = mysql_num_rows( $res );if ( $num ){$row = mysql_fetch_assoc( $res );if ( $row["Inhalt"] ){$vorlage = true;}}return $vorlage;}?>