Author Topic: [MOD]Pictures Email Upload V1.7.6  (Read 93774 times)

0 Members and 1 Guest are viewing this topic.

Rembrandt

  • Guest
[MOD]Pictures Email Upload V1.7.6
« on: December 27, 2008, 04:40:55 PM »

Für V.1.7.8
falls ihr noch eine alte 4images version habt müßt ihr die beiden auskommentierten zeilen im code wieder aktivieren, damit die "Keywords" wieder stimmen.:
Code: [Select]

//$image_keywords = str_replace(","," ",$image_keywords); // Comment out for V 1.7.8
//$image_keywords = preg_replace("/ /", "", $image_keywords); //Comment out for V 1.7.8

Mit diesem [Mod] ist es möglich Bilder per E-Mail auf dem Server hochzu laden.
Egal ob ein oder mehrere Bilder in einer Mail, oder mehrere Mails mit einem oder mehr Bilder.
So ist es auch möglich, Bilder die mit einem Handy gemacht worden sind auf dem Server hoch zu laden,
 vorrausgesetzt ihr habt ein E-Mail fähiges Handy.
 
Als erster würde ich euch empfehlen wenn ihr einen eigenen Webserver habt,
 ein eigenes E-Mail Postfach hierzu anzulegen, ohne geht es natürlich auch.
Aber Achtung alle E-Mails die das Falsche Passwort oder Benutzernamen haben werden automatisch gelöscht.

Zu Modifizierende Dateien:
      1.)lang/deutsch/admin.php
      2.)admin/setting.php
      3.)Eine neue Datei in admin/plugins:
      
      "eMail_upload.php"
      
          

1.) sucht in der Datei lang/deutsch/admin.php
Code: [Select]
$setting['smtp_password'] = "SMTP Passwort";

und fügt danach ein:    
Code: [Select]
//--------------------------------------- Start eMail upload --------------------------------------
$setting['pop_server'] = "POP Server";
$setting['pop_username'] = "POP Username";
$setting['pop_password'] = "POP Passwort";
$setting['pop_code'] = "POP Code";
 //--------------------------------------- End eMail upload --------------------------------------

2.) sucht in der datei admin/setting.php:
Code: [Select]
show_setting_row("smtp_password");
und fügt danach ein:
Code: [Select]
//--------------------------------------- Start eMail upload --------------------------------------
  show_setting_row("pop_server");
  show_setting_row("pop_username");
  show_setting_row("pop_password");
  show_setting_row("pop_code");
 //--------------------------------------- End eMail upload --------------------------------------

3.) Entweder ihr legt die Datei neu an oder ihr ladet sie euch aus dem anhang herrunter
       und speichert sie unter admin/plugins ab.

<link rel="stylesheet" href="/admin/cpstyle.css">
<
body bgcolor="#FFFFFF" text="#0F5475" link="#0F5475" vlink="#0F5475" alink="#0F5475">
<?
// PLUGIN_TITLE: eMail_upload.php 
/**************************************************************************
 *                                                                        *
 *    4images - A Web Based Image Gallery Management System               *
 *    ----------------------------------------------------------------    *
 *                                                                        *
 *             File: eMail_upload.php                                     *
 *        Copyright: (C) 2008 Jan Sorgalla                                *
 *            Email: jan@4homepages.de                                    *
 *              Web: http://www.4homepages.de                             *
 *    Scriptversion: 1.7.6                                                *
 *    File Version: 1.1 (by Rembrandt www.vienna-pictures.com)            *
 *    Never released without support from: Nicky (http://www.nicky.net)   *
 *                                                                        *
 **************************************************************************
 *                                                                        *
 *    Dieses Script ist KEINE Freeware. Bitte lesen Sie die Lizenz-       *
 *    bedingungen (Lizenz.txt) für weitere Informationen.                 *
 *    ---------------------------------------------------------------     *
 *    This script is NOT freeware! Please read the Copyright Notice       *
 *    (Licence.txt) for further information.                              *
 *                                                                        *
 *************************************************************************/
class receiveMail {
  var 
$server='';
  var 
$username='';
  var 
$password='';
        
  function 
receiveMail($server='localhost',$username,$password){
//  $strConnect='{'.$server.':143}INBOX';
//  $strConnect='{'.$server.':110}INBOX';
    
$strConnect='{'.$server.':110/pop3/notls}';
    
$this->server=$strConnect;
    
$this->username=$username;
    
$this->password=$password;
  }
  
  function 
connect(){
    
$this->mbox=imap_open($this->server,$this->username,$this->password);
  }
  
  function 
getHeaders($mid){
    
$mail_header=imap_header($this->mbox,$mid);
    
$sender=$mail_header->from[0];
    
$sender_replyto=$mail_header->reply_to[0];
    if(
strtolower($sender->mailbox)!='mailer-daemon' && strtolower($sender->mailbox)!='postmaster'){
      
$mail_details=array(
        
'from'=>strtolower($sender->mailbox).'@'.$sender->host,
        
'fromName'=>$sender->personal,
        
'toOth'=>strtolower($sender_replyto->mailbox).'@'.$sender_replyto->host,
        
'toNameOth'=>$sender_replyto->personal,
        
'subject'=>$mail_header->subject,
        
'to'=>strtolower($mail_header->toaddress)
      );
    }
    return 
$mail_details;
  }
  
  function 
get_mime_type($structure){
    
$primary_mime_type = array("TEXT""MULTIPART""MESSAGE""APPLICATION""AUDIO""IMAGE""VIDEO""OTHER");
    if(
$structure->subtype) {
      return 
$primary_mime_type[(int) $structure->type] . '/' $structure->subtype;
    }
    return 
"TEXT/PLAIN";
  }
  
  function 
get_part($mbox$mid$mime_type$structure false,$part_number false){
    if(!
$structure) {
      
$structure imap_fetchstructure($mbox$mid);
    }
    if(
$structure) {
      if(
$mime_type == $this->get_mime_type($structure)){
        if(!
$part_number){
          
$part_number "2";
        }
        
$text imap_fetchbody($mbox$mid$part_number);
        if(
$structure->encoding == 3){
          return 
imap_base64($text);
        }
        else if(
$structure->encoding == 4){
          return 
imap_qprint($text);
        }
        else{
          return 
$text;
        }
      }
      if(
$structure->type == 1){
        while(list(
$index$sub_structure) = each($structure->parts)){
          if(
$part_number){
            
$prefix $part_number '.';
          }
          
$data $this->get_part($mbox$mid$mime_type$sub_structure$prefix . ($index 1));
          if(
$data){
            return 
$data;
          }
        }
      }
    }
    return 
false;
  }
  
  function 
getTotalMails(){
    
$headers=imap_headers($this->mbox);
    return 
count($headers);
  }
  
  function 
GetAttach($mid,$path){
    
$structure imap_fetchstructure($this->mbox,$mid);
    
$ar="";
    foreach(
$structure->parts as $key => $value){
      
$enc=$structure->parts[$key]->encoding;
      if(
$structure->parts[$key]->ifdparameters){
        
$name=$structure->parts[$key]->dparameters[0]->value;
        
$message imap_fetchbody($this->mbox,$mid,$key+1);
        if (
$enc == 1)  $message imap_8bit($message);
        if (
$enc == 2)  $message imap_binary ($message);
        if (
$enc == 3)  $message imap_base64 ($message);
        if (
$enc == 4)  $message imap_qprint($message);
        if (
$enc == 5)  $message "$message";
        if (
file_exists($path.$name)){
          
$num '1';
          while (
file_exists ($path $num $name)){
            
$num++;
            
$name "Copy_from_$name";
          }
        }
        
$name $num $name;
        
$fp=fopen($path.$name,"w+");
        
chmod ($path.$name0666);
        
fwrite($fp,$message);
        
fclose($fp);
        
$ar=$ar.$name.",";
      }
    }
    
$ar=substr($ar,0,(strlen($ar)-1));
    return 
$ar;
  }
  
  function 
getBody($mid){
    
$body $this->get_part($this->mbox$mid"TEXT/HTML");
    if (
$body == "")
      
$body $this->get_part($this->mbox$mid"TEXT/PLAIN");
        if (
$body == ""){
          return 
"";
        }
        return 
$body;
  }
  
  function 
deleteMails($mid){
    
imap_delete($this->mbox,$mid);
  }
  
  function 
close_mailbox(){
    
imap_close($this->mbox,CL_EXPUNGE);
  }
}
flush();
//error_reporting(E_ALL);
$nozip 1;
define('IN_CP'1);
$root_path = (false === stristr($_SERVER['PHP_SELF'], "/plugins/")) ? "./../" "./../../";
define('ROOT_PATH'$root_path);
require(
ROOT_PATH.'admin/admin_global.php');
require(
ROOT_PATH.'includes/image_utils.php');

  
$obj= new receiveMail($config['pop_server'],$config['pop_username'],$config['pop_password']);
  
$obj->connect();
  
$tot=$obj->getTotalMails(); 
  
  echo 
"$tot Neue Nachrichten in ".$config['pop_server']."<br>";
  if(
$tot>0) {
    echo 
'<table cellpadding="0" cellspacing="0" border="0" width="100%">';
    echo 
'<tr>';
    echo 
'<td class="tableheader">';
    echo 
'<table width="100%" border="0" cellspacing="1" cellpadding="3">';
    echo 
'<tr class="tableborder">';
    echo 
'<td class="tableheader" width=3%>Nr.</td>';
    echo 
'<td class="tableheader" width=8%>'.$lang['field_username'].'</td>';
    echo 
'<td class="tableheader" width=15%>'.$lang['field_image_name'].'</td>';
    echo 
'<td class="tableheader" width=8%>'.$lang['field_category'].'</td>';
    echo 
'<td class="tableheader" width=30%>'.$lang['field_keywords'].'</td>';
    echo 
'<td class="tableheader" >'.$lang['field_description'].'</td>';
    echo 
'</tr>';
    
$bgcounter 0;
//  for($i=$tot;$i>=1;$i--) 
    
for($i=1;$i<=$tot;$i++){
      
$body=$obj->getBody($i);
      
$mes strip_tags($body);
      
$head=$obj->getHeaders($i);
      
$array explode ("*",$head['subject']);
   
      
$sql "SELECT u.user_id, u.user_name, c.cat_id, c.cat_name
              FROM ("
.USERS_TABLE." u, ".CATEGORIES_TABLE." c)
              WHERE user_name = '
$array[0]' AND cat_id = '$array[2]'
             "

      
$result $site_db->query($sql); 
      
$row $site_db->fetch_array($result);
      
$user_name $row[user_name];
      
$user_id $row[user_id];
      
$cat_name $row[cat_name];
      
$cat_id $row[cat_id];  
      
      if (
$array[0] == "$user_name&& $array[1] == $config['pop_code']){
        
$path MEDIA_TEMP_PATH."/";
        
$found   '*';
        
$pos strpos($mes"*");  
        
$image_keywords substr("$mes"0"$pos");  
        
$image_description substr("$mes""$pos"+1,-1); 
        
$str=$obj->GetAttach($i,$path); 
        
$br=explode(",",$str);
    
        foreach(
$br as $key=>$value){
          
$new_name "$value";
          
$pos strpos($new_name,".");
          
$image_name substr("$new_name",0,"$pos");
          
$src MEDIA_TEMP_PATH."/".$new_name;
          
$dest THUMB_TEMP_PATH."/".$new_name;
          
$image_info = @getimagesize($src);
          
          
$convert_options init_convert_options();
          
$dimension = (intval($config['auto_thumbnail_dimension'])) ? intval($config['auto_thumbnail_dimension']) : 100;
          
$resize_type = (intval($config['auto_thumbnail_resize_type'])) ? intval($config['auto_thumbnail_resize_type']) : 1;
          
$quality = (intval($config['auto_thumbnail_quality']) && intval($config['auto_thumbnail_quality']) <= 100) ? intval($config['auto_thumbnail_quality']) : 100;
          
create_thumbnail($src$dest$quality$dimension$resize_type);
          
$new_thumb_name $new_name;
            
          
$image_description preg_replace("/[\n\r]/is"""$image_description);
          
$image_description trim($image_description);
          
$image_description preg_replace("/&nbsp;/"""$image_description);
          
$image_keywords preg_replace("/[\n\r]/is"""$image_keywords);
        
//$image_keywords = str_replace(","," ",$image_keywords); // Comment out for V 1.7.8
          
$image_keywords trim($image_keywords);
        
//$image_keywords = preg_replace("/&nbsp;/", "", $image_keywords); //Comment out for V 1.7.8
          
$row_bg_number = ($bgcounter++ % == 0) ?  "tablerow" "tablerow2";
          echo 
'<tr class="' .$row_bg_number.'">';
          echo 
'<td width=3%>'.$i.'</td>';
          echo 
'<td width=8%>'.$user_name.'</td>';
          echo 
'<td width=15%>'.$image_name.'</td>';
          echo 
'<td width=8%>'.$cat_name.'</td>';
          echo 
'<td width=30%>'$image_keywords '</td>';
          echo 
'<td >'$image_description '</td>';
          echo 
'</tr>';
          
          
$current_time time();
          
$sql "INSERT INTO ".IMAGES_TEMP_TABLE."
                 (cat_id, user_id, image_name, image_description, image_keywords, image_date, image_media_file, image_thumb_file) 
                  VALUES
                 ('
$cat_id','$user_id','$image_name','$image_description','$image_keywords','$current_time', '$new_name', '$new_thumb_name')";
          
$result $site_db->query($sql);
          
$image_id $site_db->get_insert_id();
        }
      } 
      else{
        
$obj->deleteMails($i);
        
$row_bg_number = ($bgcounter++ % == 0) ?  "tablerow" "tablerow2";
        echo 
'<tr class= "'.$row_bg_number.'">';
        echo 
'<td width=3%>'.$i.'</td>';
        echo 
'<td width=10%>'.$head['from'].'</td>';
        echo 
'<td width=15%>'.$image_name.'</td>';
        echo 
'<td width=8%>'.$cat_name.'</td>';
        echo 
'<td class="marktext">Falscher Benutzername oder Passwort!</td>';
        echo 
'<td class="marktext">Mail wurde gelöscht!</td>';
        echo 
'</tr>';
      } 
      
flush();
      
$obj->deleteMails($i); // Delete Mail from Mail box
    
}
    echo 
'</table></td></tr></table>';
  }
  
$obj->close_mailbox();   //Close Mail Box
?>
</body>


Habt ihr alles richtig gemacht solltet ihr in ACP unter Allgemein/Einstellungen nach "SMTP Passwort"
 4 neue Felder sehen:
 
 POP Server: Hier tragt ihr euren pop3 email Server ein.
                     Habt ihr einen imap Server müsst ihr in der eMail_upload.php den port auf "143" ändern.  

 POP Username:Login Name vom E-Mail Server

 POP Passwort:Login Passwort vom E-Mail Server
 
 POP Code: diese Passwort ist frei wählbar und wird für den Bilder upload benötigt.
 
Für den Bilder upload werden in der Betreffzeile:
der "4images Username", der "POP Code" und die "Kategorie Nummer" in folgenden Format benötigt:
4images_Username * POP Code * Kategorie Nummer

Beispiel:"Rembrandt*Trs5g*45"
als Trennzeichen unbedingt "*" verwenden.
sollte der Username oder der POP Code falsch sein wird die Mail gelöscht.

Im Text Feld wird genauso verfahren, und als Trennzeichen "*" zwischen Keywords(Stichwörter) und Beschreibung verwendet.
Stichwörter und Beschreibung in folgenden Format:

"keyword1,keyword2,keyword*das ist ein Beispiel"

Wichtig, vor dem "*" die keywords mit "," trennen nach dem "*" die Bildbeschreibung.

Wurden die Bilder mit der "eMail_upload.php" übertragen könnt ihr sie mit "Bilder Freischalten" in eure Galerie übernehmen.


 mfg Andi
 

  
« Last Edit: October 04, 2010, 06:27:43 PM by Rembrandt »

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.805
  • I ♥ 4I
    • View Profile
Re: [MOD]Pictures Email Upload V1.7.6
« Reply #1 on: December 27, 2008, 08:55:56 PM »
Genial!

Offline CanonInk

  • Newbie
  • *
  • Posts: 48
    • View Profile
Re: [MOD]Pictures Email Upload V1.7.6
« Reply #2 on: December 28, 2008, 06:43:35 PM »
Der Mod ist wie Weihnachten und Ostern zusammen  :D

Offline Implant

  • Pre-Newbie
  • Posts: 3
    • View Profile
Re: [MOD]Pictures Email Upload V1.7.6
« Reply #3 on: January 04, 2009, 02:12:32 PM »
Also irgendwie bekomme ich nur diesen fehler hier:

Warning: require() [function.require]: Unable to access ./../admin/admin_global.php in /xxxxx/xxxxxxxxx.de/xxxxxxxxxxxxx.de/httpd.www/gallery/admin/plugins/eMail_upload.php on line 190

Warning: require(./../admin/admin_global.php) [function.require]: failed to open stream: No such file or directory in /xxxxx/xxxxxxxxx.de/xxxxxxxxxxxxx.de/httpd.www/gallery/admin/plugins/eMail_upload.php on line 190

Fatal error: require() [function.require]: Failed opening required './../admin/admin_global.php' (include_path='.:') in /xxxxx/xxxxxxxxx.de/xxxxxxxxxxxxx.de/httpd.www/gallery/admin/plugins/eMail_upload.php on line 190

Rembrandt

  • Guest
Re: [MOD]Pictures Email Upload V1.7.6
« Reply #4 on: January 04, 2009, 03:29:46 PM »
Hi!
Also irgendwie bekomme ich nur diesen fehler hier:...
und das hast du gemacht:
Quote
..und speichert sie unter admin/plugins ab
und im ACP unten unter "Plugins" aufgerufen?

mfg Andi

Offline Implant

  • Pre-Newbie
  • Posts: 3
    • View Profile
Re: [MOD]Pictures Email Upload V1.7.6
« Reply #5 on: January 04, 2009, 03:59:46 PM »
jep, das passiert wenn ich es im ACP aufrufen möchte

Rembrandt

  • Guest
Re: [MOD]Pictures Email Upload V1.7.6
« Reply #6 on: January 04, 2009, 04:12:31 PM »
Hi!
aus irgend einem grund hast du da anscheinend keine rechte.
Code: [Select]
Warning: require() [function.require]: Unable to access ./../admin/admin_global.php
b.z.w gib mal deinen pfad zur admin_global.php selber in der zeile 190 an.

mfg Andi

Offline Implant

  • Pre-Newbie
  • Posts: 3
    • View Profile
Re: [MOD]Pictures Email Upload V1.7.6
« Reply #7 on: January 05, 2009, 11:31:23 PM »
da bekomme ich die selbe fehler meldung

Offline theskyboy

  • Pre-Newbie
  • Posts: 6
    • View Profile
Re: [MOD]Pictures Email Upload V1.7.6
« Reply #8 on: January 08, 2009, 07:21:10 PM »
Hallo

Wenn ich an den 'eMail_upload.php' taste, krige ich die folgenden Fehler:


Parse error: syntax error, unexpected T_CLASS in /data/members/paid/h/u/huboftheuniverse.net/htdocs/maureens/admin/plugins/eMail_upload.php on line 27


Kanst du mir helfen?

MfG

Nick

Rembrandt

  • Guest
Re: [MOD]Pictures Email Upload V1.7.6
« Reply #9 on: January 08, 2009, 07:38:28 PM »
Hi!
...
tja wirklich weiter helfen kann ich dir dabei nicht.
 ein wirklicher syntax error kanns nicht sein, ausser du hast beim rauskopieren irgendwas vergessen.

ich nehme mal an das du die felder in der datenbank angelegt hast, und auch einen funktionierenden zugang zu deiner mailbox hast.

mfg Andi

Edit: habe gerade die version aus dem forum bei mir nochmal probiert, funktioniert einwandfrei.

Offline theskyboy

  • Pre-Newbie
  • Posts: 6
    • View Profile
Re: [MOD]Pictures Email Upload V1.7.6
« Reply #10 on: January 09, 2009, 11:27:22 AM »
Hi

Ich habe die code in Stufe 4 mit den txt file ersetz und jetz funkioniert es.

Danke, sehr cool mod.

Nick

Rembrandt

  • Guest
Re: [MOD]Pictures Email Upload V1.7.6
« Reply #11 on: January 09, 2009, 02:33:16 PM »
Hi!
...Ich habe die code in Stufe 4 mit den txt file ersetz und jetz funkioniert es.
...
k.a. was du jetzt meinst, aber egal hauptsache es funktioniert.

ein tip noch, wenn du in der admin/validateimages nach der zeile:
Code: [Select]
if ($action == "validateimages") {
  $condition = "1=1";

diese zeile einfügst:
Code: [Select]
include ('admin/plugins/eMail_upload.php');

kannst du gleich auf "Bilder Freischalten" klicken.

mfg Andi

Offline kubiczek

  • Full Member
  • ***
  • Posts: 211
    • View Profile
    • Gross Peterwitz
Re: [MOD]Pictures Email Upload V1.7.6
« Reply #12 on: January 18, 2009, 12:11:03 PM »
hallo

ich bekomme die selbe meldung wie "Implant"

Warning: require(./../admin/admin_global.php) [function.require]: failed to open stream: No such file or directory in ******************************gp/admin/plugins/eMail_upload.php on line 190

Warning: require(./../admin/admin_global.php) [function.require]: failed to open stream: No such file or directory in +++++++++++++++++++++++++gp/admin/plugins/eMail_upload.php on line 190


rechte habe ich überprüft. chmod 777 ist vorhannden

was kann es noch sein ?

gruß lkubiczek

Rembrandt

  • Guest
Re: [MOD]Pictures Email Upload V1.7.6
« Reply #13 on: January 18, 2009, 12:27:51 PM »
Hi!
...ich bekomme die selbe meldung wie "Implant"...
wenn du das so eingebaut wie oben beschrieben sollte das auch funktionieren.
ich habe es mit meiner galerie, und einer komplett neu aufgesetzten V1.7.6 getestet,
 alle beide galerien unter PHP4 und PHP5.

mfg Andi

Offline kubiczek

  • Full Member
  • ***
  • Posts: 211
    • View Profile
    • Gross Peterwitz
Re: [MOD]Pictures Email Upload V1.7.6
« Reply #14 on: January 18, 2009, 05:07:19 PM »
habe es jetzt in eine ganz frischen umgebung eingebaut,  der selbe fehlerkommt wieder.

meine php version 5.0.51a-3ubuntu5.4

rechte habe ich auf 777


weis kein rat mehr