Adsmanager - Wysłanie maila z kilkoma załącznikami
Wyniki 1 do 5 z 5

Temat: Adsmanager - Wysłanie maila z kilkoma załącznikami

  1. #1
    Nowicjusz
    Dołączył
    10-12-2008
    Wpisy
    13
    Punkty
    10

    Domyślny Adsmanager - Wysłanie maila z kilkoma załącznikami

    Witam,

    Chciałem zmodyfikować skrypt, aby wysyłać nie jeden, ale powiedzmy 2-3 załączniki mailem. Na razie mam coś takiego, niestety nie mogę osiągnąć zamierzonego efektu.

    Kod PHP:
    if ($_FILES['attach_file']['tmp_name'] != "")
                {
                    
    $directory ini_get('upload_tmp_dir')."";
                    if (
    $directory == "")
                        
    $directory ini_get('session.save_path')."";
                    
    $filename = array($filename);
                    
                    
    $plik1 $_FILES['attach_file']['name'];
                    
    move_uploaded_file($_FILES['attach_file']['tmp_name'], $directory.$plik1);
                    
    $filename[] = $directory."/".$plik1;
                    
                    
    $plik2 $_FILES['attach_file2']['name'];
                    
    move_uploaded_file($_FILES['attach_file2']['tmp_name'], $directory.$plik2);
                    
    $filename[] = $directory."/".basename($_FILES['attach_file2']['name']);
                
                
                    
    $plik3 $_FILES['attach_file3']['name'];
                    
    move_uploaded_file($_FILES['attach_file3']['tmp_name'], $directory.$plik3);
                    
    $filename[] = $directory."/".basename($_FILES['attach_file3']['name']);
                
                    
                    
    rename($_FILES['attach_file']['tmp_name'], $filename);
                    
    rename($_FILES['attach_file2']['tmp_name'], $filename);
                    
    rename($_FILES['attach_file3']['tmp_name'], $filename);
                    
    mosMail($email,$name,$ad->email,$title,$body,1,NULL,NULL,$filename,$email,$contact);
                } 
    Pliki oczywiście załączam przez pole INPUT typu FILE w osobnym pliku.

    Kod PHP:
    <label for="body"><?php echo ADSMANAGER_ATTACH_FILE?></label><br />
                        <input id="attach_file" type="file" name="attach_file" /> <br />
    <input id="attach_file2" type="file" name="attach_file2" />
    <input id="attach_file3" type="file" name="attach_file3" />
    Jeśli zakomentuję wszystkie do obsługi 2giego i 3giego pliku, to mail wysyła się dobrze z pierwszym załącznikiem. W przeciwnym przypadku jest pusty :/ Czy ktoś może wskazać mi co robię źle?

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2
    Wyga Jola awatar
    Dołączył
    08-01-2008
    Skąd
    Wrocław
    Wpisy
    3 239
    Punkty
    386

    Domyślny

    Witam,
    raczej $filename = Array();
    Sprawdź zawartość końcową $filename - wyświetl ją sobie w pętli.
    Pytanie - co masz zamiar robić z taką ilością plików na serwerze.
    Ja pomyślałabym o ich usunięciu po wysłaniu emaila.
    Pozdrawiam

  4. #3
    Nowicjusz
    Dołączył
    10-12-2008
    Wpisy
    13
    Punkty
    10

    Domyślny

    Kod PHP:
    if ($_FILES['attach_file']['tmp_name'] != "")
                {
                    
    $directory ini_get('upload_tmp_dir')."";
                    if (
    $directory == "")
                        
    $directory ini_get('session.save_path')."";
                    
    $filename = Array();
                    
                    
    $plik1 $_FILES['attach_file']['name'];
                    
    move_uploaded_file($_FILES['attach_file']['tmp_name'], $directory.$plik1);
                    
    $filename[0] = $directory."/".$plik1;
                    
                    
    $plik2 $_FILES['attach_file2']['name'];
                    
    move_uploaded_file($_FILES['attach_file2']['tmp_name'], $directory.$plik2);
                    
    $filename[1] = $directory."/".basename($_FILES['attach_file2']['name']);
                
                
                    
    $plik3 $_FILES['attach_file3']['name'];
                    
    move_uploaded_file($_FILES['attach_file3']['tmp_name'], $directory.$plik3);
                    
    $filename[2] = $directory."/".basename($_FILES['attach_file3']['name']);
                
                    
                    
    rename($_FILES['attach_file']['tmp_name'], $plik1);
                    
                    echo 
    $filename[0] . $filename[1] . $filename[2];
                    
    //rename($_FILES['attach_file2']['tmp_name'], $filename);
                    //rename($_FILES['attach_file3']['tmp_name'], $filename);
                    
    mosMail($email,$name,$ad->email,$title,$body,1,NULL,NULL,$filename,$email,$contact); 
    Hmm, jestem już dość zagubiony. Teraz dostaję maila bez jakiegokolwiek załącznika :/ Do tego polecenie echo nie zwraca żadnego wyniku.

  5. #4
    Wyga Jola awatar
    Dołączył
    08-01-2008
    Skąd
    Wrocław
    Wpisy
    3 239
    Punkty
    386

    Domyślny

    Witam,
    if ($_FILES['attach_file']['tmp_name'] != "" || $_FILES['attach_file2']['tmp_name'] != "" || $_FILES['attach_file3']['tmp_name'] != "")
    .......
    $filename = Array();
    $filename[0] = $directory."/".basename($_FILES['attach_file']['name']);
    $filename[1] = $directory."/".basename($_FILES['attach_file2']['name']);
    $filename[2] = $directory."/".basename($_FILES['attach_file3']['name']);
    echo "Plik1: ".$filename[0]." Plik2 ".$filename[1]." Plik3 ".$filename[2];
    rename($_FILES['attach_file']['tmp_name'], $filename[0]);
    rename($_FILES['attach_file2']['tmp_name'], $filename[1]);
    rename($_FILES['attach_file3']['tmp_name'], $filename[2]);

  6. #5
    Nowicjusz
    Dołączył
    10-12-2008
    Wpisy
    13
    Punkty
    10

    Domyślny

    Dziękuję Ci bardzo Jolu, jeszcze oczywiście usuwanie plików po wysłaniu, może się komuś przyda:

    Kod PHP:
       if($_FILES['attach_file']['name']){
       
    unlink($filename[0]);
       }
       if(
    $_FILES['attach_file2']['name']){
       
    unlink($filename[1]);
       }
       if(
    $_FILES['attach_file3']['name']){
       
    unlink($filename[2]);
       } 

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •