Blame | Letzte Änderung | Log anzeigen | RSS feed
<?php//$Id: mail_func.php 763 2011-10-13 08:06:44Z tiefland $/*** @author Lars Tiefland <tiefland@weban.de>* @copyright 2009 Webagentur Niewerth* @package content-management* @version $Rev: 763 $* @license propietary* @filesource**//**** @author Lars Tiefland <tiefland@weban.de>* @copyright 2009 Webagentur Niewerth* @package content-management*/if ( !defined( "__USE_MDB2__" ) ){define( "__USE_MDB2__", false );}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, $site, $user = "", $db = "" ){if ( empty( $user ) ){$user = $_SERVER["PHP_AUTH_USER"];}$date = date( "Y-m-d_H-i" );$f_name = $art . "_" . $bestell_id . "_" . $date . "_" . $ln . ".html";$f = fopen( "images/dokumente/" . $f_name, "w" );fwrite( $f, $body );fclose( $f );if ( $db ){$db .= ".";}$table = $db . "dokumente";$GLOBALS["user"] = $user;save_document( $f_name, $bestell_id, $table );return true;}function save_document( $f_name, $bestell_id, $table = "dokumente", $b_table ="Bestellung" ){if ( empty( $GLOBALS["user"] ) ){$GLOBALS["user"] = $_SERVER["PHP_AUTH_USER"];}$sql = "REPLACE INTO$table(table_foreign,row_foreign,data_foreign,document,letzte_Aenderung_am,letzte_Aenderung_von)VALUES('$b_table','ID',$bestell_id,'$f_name',NOW(),'" . $GLOBALS["user"] . "')";if ( __USE_MDB2__ ){$res = $GLOBALS["db"]->query( $sql );if ( PEAR::isError( $res ) ){mail( "tiefland@weban.de","Fehler beim hinzufgen der PDF-Datei zur Bestellung!", $res->getUserInfo(), "From: redaktion@$site" );}}else{$res = mysql_query( $sql );if ( !$res ){mail( "tiefland@weban.de","Fehler beim hinzufgen der PDF-Datei zur Bestellung!",mysql_error() . "\n$sql", "From: redaktion@$site" );}}}function create_pdf( $bestell_id, $adminMail, $mailto, $body, $art, $ln = 1,$site, $user = "", $db = "", $return_fname = false ){if ( empty( $user ) ){$user = $_SERVER["PHP_AUTH_USER"];}if ( $db ){$db .= ".";}$table = $db . "Bestellung";//Instanciation of inherited class$pdf = new PDF();$sql = "SELECTshops_IDFROM$tableWHEREID=$bestell_id";if ( __USE_MDB2__ ){$res = $GLOBALS["db"]->query( $sql );$row = $res->FetchRow();$shops_ID = $row["shops_id"];}else{$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";$pdf->Output( "images/dokumente/$f_name" );$table = $db . "dokumente";$GLOBALS["user"] = $user;save_document( $f_name, $bestell_id, $table );if ( $return_fname === true ){return $f_name;}return true;}function generate_LN( $bestell_id, $art ){$db = $GLOBALS["INI"]["dbConnect"]["order_db"];if ( $db ){$db .= ".";}$date = date( "Y-m-d_H-i-s" );$f_name = $art . "_" . $bestell_id . "_" . $date;$sql = "SELECTMAX(document) AS dokumentFROM" . $db . "dokumenteWHEREdocument LIKE '$f_name%'";if ( __USE_MDB2__ ){$res = $GLOBALS["db"]->query( $sql );if ( !PEAR::isError( $res ) ){if ( $res->NumRows() ){$row = $res->FetchRow( $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;}}else{$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"];$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 );*/}if ( array_key_exists( "params", $extra ) ){$params = $extra["params"];}if ( $extra["db"] ){$dbase = $extra["db"] . ".";}$files = array();if ( array_key_exists( "files", $extra ) ){$files = $extra["files"];}$shops_table = $dbase . "shops";$settings_table = $dbase . "web_settings";$sql = "SELECT*FROM" . $shops_table . "WHEREID='" . $extra["shops_ID"] . "'";if ( __USE_MDB2__ ){$res = $GLOBALS["db"]->query( $sql );if ( $_SERVER["REMOTE_ADDR"] == "89.245.130.99" || preg_match( "/192\.168\.0/",$_SERVER["REMOTE_ADDR"] ) || CRON === true ){if ( PEAR::isError( $res ) ){die( $res->getUserInfo() );}}$row = $res->FetchRow();}else{$res = mysql_query( $sql );if ( $_SERVER["REMOTE_ADDR"] == "89.245.130.99" || preg_match( "/192\.168\.0/",$_SERVER["REMOTE_ADDR"] ) || CRON === true ){if ( !$res ){die( mysql_error() . "<br>$sql<br>" );}}$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 );}if ( $_SERVER["REMOTE_ADDR"] == "89.245.130.99" || preg_match( "/192\.168\.0/",$_SERVER["REMOTE_ADDR"] ) || CRON === true ){//var_dump( $row, $smtp_opts );}$sql = "SELECTinhaltFROM$settings_tableWHEREshops_ID=" . $extra["shops_ID"] . "ANDID=1000";$sql .= ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["bestellart"] ) ) ?" AND bestellart_id=1" : "";if ( __USE_MDB2__ ){$res = $GLOBALS["db"]->query( $sql );if ( $_SERVER["REMOTE_ADDR"] == "89.245.130.99" || preg_match( "/192\.168\.0/",$_SERVER["REMOTE_ADDR"] ) || CRON === true ){if ( PEAR::isError( $res ) ){die( $res->getUserInfo() );}}$row = $res->FetchRow();}else{$res = mysql_query( $sql );if ( $_SERVER["REMOTE_ADDR"] == "89.245.130.99" || preg_match( "/192\.168\.0/",$_SERVER["REMOTE_ADDR"] ) || CRON === true ){if ( !$res ){die( mysql_error() . "<br>$sql<br>" );}}$row = mysql_fetch_assoc( $res );}if ( $row["inhalt"] ){$vorlage = true;}$recipients = array( $to, );require_once "Mail.php";require_once "Mail/mime.php";$mime = new Mail_mime( "\n" );if ( __USE_SMTP__ ){$mail = &Mail::factory( 'smtp', $smtp_opts );}else{$mail = &Mail::factory( 'sendmail' );}$text = "";if ( is_array( $extra["files"] ) ){foreach ( $extra["files"] as $document ){if ( file_exists( $document ) ){$mtype = mime_content_type( $document );$mime->addAttachment( $document, $mtype, basename( $document ) );//$anlagen[] = basename( $document );}}}if ( $vorlage && $to != $headers["From"] ){$shops_ID = ( int )$extra["shops_ID"];require_once ( "libs/Smarty.class.php" );$sql = "SELECTl.*FROMLogins lJOINBestellung bONb.Login=l.IDANDb.ID=" . ( int )$extra["bestellung"];if ( __USE_MDB2__ ){$res = $GLOBALS["db"]->query( $sql );if ( $_SERVER["REMOTE_ADDR"] == "89.245.130.99" || preg_match( "/192\.168\.0/",$_SERVER["REMOTE_ADDR"] ) || CRON === true ){if ( PEAR::isError( $res ) ){die( $res->getUserInfo() );}}$Userdata = $res->FetchRow();}else{$res = mysql_query( $sql );if ( $_SERVER["REMOTE_ADDR"] == "89.245.130.99" || preg_match( "/192\.168\.0/",$_SERVER["REMOTE_ADDR"] ) || CRON === true ){if ( !$res ){die( mysql_error() . "<br>$sql<br>" );}}$Userdata = mysql_fetch_assoc( $res );}$smarty = new Smarty();$smarty->assign( "heading", $subject );$smarty->assign( "inhalt", stripslashes( $body ) );$smarty->assign( "Userdata", $Userdata );$smarty->assign( "to", $to );$smarty->assign( "date", time() );if ( __USE_MDB2__ ){$prot = "mdb2";}else{$prot = "db";}$html = $smarty->fetch( $prot . ":" . $shops_ID . "_1000" );$text = strip_tags( $html, "<br><br />" );$text = str_replace( array( "<br>", "<br />" ), "\n", $text );$mime->setTXTBody( $text );$mime->setHTMLBody( $html );$body = $html;}else{$body = str_replace( "\r", "", $body );$body = str_replace( "\n\n", "\n", $body );$text = $body;$mime->setTXTBody( $text );/*$res = mail( $to, $subject, $body, "FROM: " . $headers["From"],$params );*//*$res = mail( "tiefland@weban.de", $subject, $body, "FROM: " . $headers["From"],$params );*/}unset( $hdrs, $m_headers );$hdrs = array( 'From' => $headers["Return"], 'Return-Path' => $headers["Return"],'Subject' => $subject, "To" => "$to", "Date" => date( "r" ), );/* $hdrs = array( 'From' => $headers["Return"], 'Return-Path' => $headers["Return"],'Subject' => $subject, "To" => $Userdata["Vorname"] . " " . $Userdata["Name1"] ."<$to>", "Date" => date( "r" ), );/*///do not ever try to call these lines in reverse order$text = $mime->get();$m_headers = $mime->headers( $hdrs, true );$res = $mail->send( $to, $m_headers, $text );if ( is_array( $headers ) ){if ( array_key_exists( "BCC", $headers ) ){$m_headers["Subject"] = $subject . " (Blindkopie)";$m_headers["To"] = $headers["BCC"];$mail->send( $headers["BCC"], $m_headers, $text );}if ( array_key_exists( "CC", $headers ) ){$m_headers["Subject"] = $subject . " (Kopie)";$m_headers["To"] = $headers["CC"];$mail->send( $headers["CC"], $m_headers, $text );}}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 .= ')';}mail_admin( $message );}function mail_admin( $message ){$site = $_SERVER["SERVER_NAME"];if ( substr_count( $site, '.' ) >= 2 ){$site = substr( $site, strpos( $site, '.' ) + 1 );}mail( "tiefland@weban.de", "Fehler auf www.$site", $message,"From: info@$site" );mail( "niewerth@weban.de", "Fehler auf www.$site", $message,"From: info@$site" );}?>