• 04-03-2015, 17:46:27
    #1
    Merhaba arkadaşlar. Aşağıdaki kodları kullanarak iletişim formundan gelen verileri alıyorum, dosyamı "dosyalar" klasörüne yüklüyorum ve her şeyi yapıyorum. (Ftp'den dosyanın yüklendiğini teyit ediyorum) Sadece dosyalar klasörüne yüklediğim dosyayı bir türlü maile ek olarak ekletemiyorum. Lütfen yardımcı olabilir misiniz?
    Teşekkür eder, iyi çalışmalar dilerim.

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    
    <?php
    
    if(isset($_FILES['dosya'])){
       $hata = $_FILES['dosya']['error'];
       if($hata != 0) {
          echo 'Yüklenirken bir hata gerçekleşmiş.';
       } else {
          $boyut = $_FILES['dosya']['size'];
          if($boyut > (1024*1024*3)){
             echo 'Dosya 3MB den büyük olamaz.';
          } else {
             $tip = $_FILES['dosya']['type'];
             $isim = $_FILES['dosya']['name'];
             $uzanti = explode('.', $isim);
             $uzanti = $uzanti[count($uzanti)-1];
             if($tip != 'image/jpeg' || $uzanti != 'jpg') {
                echo 'Yanlızca JPG dosyaları gönderebilirsiniz.';
             } else {
                $dosya = $_FILES['dosya']['tmp_name'];
                copy($dosya, 'dosyalar/' . $_FILES['dosya']['name']);
    			$dosyamx = '/var/httpdocs/tr/iformu/dosyalar/' . $_FILES['dosya']['name'];
    			$dosyatanimla = "image/jpeg";
             }
          }
       }
    }
    
    ?>
    
    <?php
    //change settings here
    
    
    require("phpmailer/class.phpmailer.php");
    
    //function to check properly formed email address
    function isEmailValid($email)
    {
      // checks proper syntax
      if( !preg_match( "/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $email))
      {
        return false;
      } 
      
      return true;
      
    }
    
    
    //get contact form details
    $name = $_POST['isim'];
    $email = $_POST['eposta'];
    $comments = $_POST['mesaj'];
    
    
    //validate email address, if it is invalid, then returns error
    
    if (!isEmailValid($email)) {
    	die('Invalid email address');
    }
    
    //start phpmailer code 
    
    $ip = $_SERVER["REMOTE_ADDR"];
    $user_agent = $_SERVER['HTTP_USER_AGENT'];
    
    
    
    @$response="Tarih: " . date("d F, Y h:i:s A",time()+ 16 * 3600 - 600) ."\n" . "IP Adresi: $ip\nTarayıcı:$user_agent\nİsim Soyisim: $name\nMesajı:\nDosya: $dosyamx\n$comments\n";
    //mail("info@mypapit.net","Contact form fakapster",$response, $headers);
    
    $mail = new PHPmailer();
    $mail->SetLanguage("en", "phpmailer/language");
    $mail->From = $your_email;
    $mail->FromName = $your_website;
    $mail->Host = $your_smtp;
    $mail->Mailer   = "smtp";
    $mail->Password = $your_smtp_pass;
    $mail->Username = $your_smtp_user;
    $mail->Subject = "$your_website İletişim Formu";
    $mail->SMTPAuth  =  "true";
    
    $mail->Body = $response;
    $mail->AddAddress($your_email,"$your_website Form");
    $mail->AddReplyTo($email,$name);
    
    @$mail->addAttachment('$dosyamx,$dosyatanimla');
    
    
    if (!$mail->Send()) {
    echo "<p>There was an error in sending mail, please try again at a later time</p>";
    echo "<p>".$mail->ErrorInfo."</p>";
    } else {
    	echo "<p>İletişimin için çok teşekkürler, <em>$name</em>. Sizinle iletişim kuracağız!<br />3 saniye içerisinde ana sayfaya yönleneceksiniz.</p>";
    }
    
    $mail->ClearAddresses();
    $mail->ClearAttachments();
    
    ?>


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 17:46:27 -->-> Daha önceki mesaj 15:52:58 --

    Yardım rica ediyorum, teşekkürler.
  • 04-03-2015, 17:53:06
    #2
    SMTP olarak kullandığınız kodları paylaşırsanız net bilgi verebilirim.

    $mail->AddAttachment('dosya yolu','dosya adı');

    şeklinde maile eklenti ekleyebilirsiniz
  • 04-03-2015, 17:59:59
    #3
    ByAkman adlı üyeden alıntı: mesajı görüntüle
    SMTP olarak kullandığınız kodları paylaşırsanız net bilgi verebilirim.

    $mail->AddAttachment('dosya yolu','dosya adı');

    şeklinde maile eklenti ekleyebilirsiniz
    Merhaba, cevabınız için çok teşekkür ederim.

    http://destek.niobeweb.net/dosyalar/...SampleForm.zip

    Adresindeki php maileri kullanıyorum. Her şeyi yapıyorum. Mailde direk dosya yerine dosyanın url'si görünüyor maalesef.

    Cevabınız için çok teşekkür ederim.
  • 04-03-2015, 20:53:01
    #4
    Öncelikle PHP Mailer'ın stabil versiyoununu Github üzerinde indir ve kütüphaneni güncelle.
    https://github.com/PHPMailer/PHPMailer

    Daha sonra "$mail->SMTPDebug = 2;" kısmını ilave et. Çıkan hatayı buraya yapıştır bakalım problem ne.
  • 04-03-2015, 23:32:32
    #5
    Üyeliği durduruldu
    @$mail->addAttachment('$dosyamx,$dosyatanimla');
    Olması Gereken

    $mail->AddAttachment("images/logo.jpg");
  • 05-03-2015, 06:47:58
    #6
    Zaten işin berbat tarafı bu. Hiçbir hata çıkmıyor. Mail geliyor ve maili görüyorsunuz. Şu şekilde anlatayım.

    İletişim formundan mail geliyor. İletişim formu için yaptığım upload alanından resim sunucuya yani dosyalar klasörüne yükleniyor.

    Fakat;

    Formu mailde açtığım zaman

    Dosya: /var/httpdocs/tr/iformu/dosyalar/resim.jpg

    Mailimde aynen bu şekilde görünüyor.

    Yani ftp'deki dosyayı bu mailer'a bir türlü yükletemiyorum.

    Teşekkürler.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 06:47:58 -->-> Daha önceki mesaj 06:45:49 --

    hddntha adlı üyeden alıntı: mesajı görüntüle
    Öncelikle PHP Mailer'ın stabil versiyoununu Github üzerinde indir ve kütüphaneni güncelle.
    https://github.com/PHPMailer/PHPMailer

    Daha sonra "$mail->SMTPDebug = 2;" kısmını ilave et. Çıkan hatayı buraya yapıştır bakalım problem ne.
    dem_baba adlı üyeden alıntı: mesajı görüntüle
    @$mail->addAttachment('$dosyamx,$dosyatanimla');
    Olması Gereken

    $mail->AddAttachment("images/logo.jpg");
    dem_ba cevabın için teşekkürler.

    @ işareti notice uyarısı için koydum.
    Ayrıca o yolu denedim, google'da beyaz.net sitesinde o şekilde bilgi de koymuşlardı, BURADA bende onu da koydum.

    Araştırmadığım, bakmadığım yer kalmadı artık...

    Teşekkürler.
  • 05-03-2015, 11:09:29
    #7
    Arkadaşlar yabancı forum sitelerinde gezip test ettiğim

    $mail->AddAttachment($_FILES['uploaded_file']['tmp_name'],
    $_FILES['uploaded_file']['name']);

    Kodu ile sorunumu çözüme ulaştırdım.

    Çok teşekkürler.
  • 05-03-2015, 11:30:02
    #8
    gizemsiz adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar yabancı forum sitelerinde gezip test ettiğim

    $mail->AddAttachment($_FILES['uploaded_file']['tmp_name'],
    $_FILES['uploaded_file']['name']);

    Kodu ile sorunumu çözüme ulaştırdım.

    Çok teşekkürler.
    Böyle durumlarda problemin olduğu değişkeni var_dump($degisken); ile kontrol edebilirsin. Sorunun çözüldüyse ne mutlu.
  • 05-03-2015, 12:31:06
    #9
    Kimlik doğrulama veya yönetimden onay bekliyor.
    @$mail->addAttachment('$dosyamx,$dosyatanimla');
    Bu bölümde olan kodları aşağıdaki gibi değiştirdiğindede çözüme ulaşacaksınız muhtelemen lazım olan arkadaşlar için yazıyorum.

    if (!empty($dosya)){
    $mail->AddAttachment($dosya);