Şimdi Ara

php mail forum - destek gerekiyor.

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
21
Cevap
1
Favori
1.527
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj

  • <?php
    require('mail/mail.php');

    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->CharSet = "utf-8";
    $mail->SMTPDebug = 0;
    $mail->SMTPKeepAlive = true;
    $mail->SMTPAuth = false;
    $mail->SMTPSecure = false;
    $mail->SMTPAutoTLS = false;

    $mail->Port = port;
    $mail->Username = "kullanıcı adım";
    $mail->Password = "şifre";
    $mail->Host = "mail hosting adresi";
    $mail->AddAddress("mail adresim");
    /*$mail->AddBCC('gönderilecek diğer mail adresim');*/ //çalışmıyor.

    $mail->WordWrap = 75;

    $V_userName = $_POST["userName"];
    $V_userEmail = $_POST["userEmail"];
    $V_mailSubject = $_POST["subject"];
    $V_emailSubject = 'Mail Form / ' . $_POST["subject"];
    $V_mailMessage = $_POST["content"];

    $V_reachType = "None";
    if(isset($_POST["reachType"])) {
    $V_reachType = implode(", ", $_POST["reachType"]);
    }

    $mail->SetFrom($V_userEmail, $V_userName);
    $mail->AddReplyTo($V_userEmail, $V_userName);
    $mail->Subject = $V_emailSubject;
    $mail->MsgHTML($V_mailMessage); // standart kullanım
    $mail-> MsgHTML(
    "Adı ve soyadı : " . $V_userName . "<br>
    " .
    "Mail adresi : " . $V_userEmail . "<br>
    " .
    "Ulaşım şekli : " . $V_reachType . "<br>
    " .
    "Mail konusu : " . $V_emailSubject . "<br>
    " .
    "Mailin detayı : " . $V_mailMessage
    );

    if($V_userName == "") {
    echo "<p class='error'>* Ad-soyad bölümünü boş bırakmamalısınız.</p>";
    } else if($V_userEmail == "") {
    echo "<p class='error'>* E-mail bölümünü boş bırakmamalısınız.</p>";
    } else if($V_reachType == "") {
    echo "<p class='error'>* En az bir tane ulaşım şekli belirtmelisiniz.</p>";
    } else if($V_emailSubject == "") {
    echo "<p class='error'>* Mesajın konusunu belirtiniz.</p>";
    } else if($V_mailMessage == "") {
    echo "<p class='error'>* Mesaj içeriğini yazmalısınız.</p>";
    } else if(strlen($V_mailMessage) <= 15) {
    echo "<p class='error'>* Mesajın içeriği 15 karakterden az olamaz.</p>";
    }

    $mail->IsHTML(true);

    if(!$mail->Send()) {
    echo "<p class='error'>Mail gönderilemedi.</p>";
    } else {
    echo "<p class='success'>Mail başarıyla gönderildi.</p>";
    }
    ?>


    Arkadaşlar merhaba. PHP mail form hazırlıyorum. PHP bilgim yok diyebilirim. Bazı konularda desteğe ihtiyacım var. Yardımcı olursanız memnun olurum. Düzenlediğim ve çalışan kod yapısı yukarıdadır.

    a) Oluşturulan mesaj bana ulaşıyor ama ikinci mail adresime de gelsin istiyorum. BCC kullanıyorum ama "SMTP Hatası: Belirtilen alıcılara ulaşılamadı:" yazıp BCC'ye tanımladığım hotmail adresini gösteriyor. Sizce ne sorun var? Başka ne deneyebilirim?

    $mail->AddBCC('gönderilecek diğer mail adresim');


    b) Mesaj gönder butonuna basıldığında tüm hataları aynı anda listelemek istiyorum. Şu an benim yazdığım sırayla ve tek tek gösteriyor. İlk hata mesajını geçince ikinciye takılıyor. Tamamını listeleyemedim.

    c) Bu yapı içine 5 mb boyutu geçmeyen dosya ataçlama imkanı vermek istiyorum. Ataç eklenmediyse hata veriyor. Aşağıdaki yapıyı denedim olmadı.

    foreach ($_FILES["attachment"]["name"] as $k => $v) {
    $mail->AddAttachment( $_FILES["attachment"]["tmp_name"][$k], $_FILES["attachment"]["name"][$k] );

    if(isset($_FILES['attachment']) || isset($_FILES["attachment"])) {
    $errors = array();
    $maxsize = 5242880; // 5mb; 2097152; // 2mb
    $acceptable = array(
    'application/pdf',
    'image/jpeg',
    'image/jpg',
    'image/gif',
    'image/png'
    );
    };

    if(($_FILES['attachment']['size'] >= $maxsize) || ($_FILES["attachment"]["size"] == 0)) {
    $errors[] = 'File too large. File must be less than 5 megabytes.';
    }

    if((!in_array($_FILES['attachment']['type'], $acceptable)) && (!empty($_FILES["attachment"]["type"]))) {
    $errors[] = 'Invalid file type. Only PDF, JPG, GIF and PNG types are accepted.';
    }

    if(count($errors) === 0) {
    move_uploaded_file($_FILES['attachment']['tmpname'], '/store/to/location.file');
    } else {
    foreach($errors as $error) {
    echo '<script>alert("'.$error.'");</script>';
    }

    die(); //Ensure no more processing is done
    }


    d) "mesaj gönderildi", "mesaj gönderilemedi", "eksik alanlar var" gibi uyarıları yeni sayfada değil aynı sayfada görmek istiyorum.

    İlginize teşekkür ederim.



    < Bu mesaj bu kişi tarafından değiştirildi erdemmetin -- 15 Şubat 2020; 10:49:53 >







  • Merhaba, benim sürekli kullandığım tabi böyle bir durum için şunu kullanıyorumhttps://phppot.com/jquery/php-contact-form-with-jquery-ajax/ orada demo var inceleyebilirsin. Tüm dökümanlar ücretsiz indirip deneme yanılma yaparak çözüme ulaşabilirsin. Unutmayın formu yine hazır kütüphane olan phpmailler ile gönderin. Gayet sağlıklı bir kodlama tavsiyemdir bir incele :)
  • quote:

    Orijinalden alıntı: zysistem

    Merhaba, benim sürekli kullandığım tabi böyle bir durum için şunu kullanıyorumhttps://phppot.com/jquery/php-contact-form-with-jquery-ajax/ orada demo var inceleyebilirsin. Tüm dökümanlar ücretsiz indirip deneme yanılma yaparak çözüme ulaşabilirsin. Unutmayın formu yine hazır kütüphane olan phpmailler ile gönderin. Gayet sağlıklı bir kodlama tavsiyemdir bir incele :)
    inceleyeceğim.teşekkür ederim.
  • birçok sorunu çözdüm fakat şu alan ile ilgili sıkıntım devam ediyor.

    if($V_userName == "") {
    echo "<p class='error'>* Ad-soyad bölümünü boş bırakmamalısınız.</p>";
    } else if($V_userEmail == "") {
    echo "<p class='error'>* E-mail bölümünü boş bırakmamalısınız.</p>";
    } else if($V_reachType == "") {
    echo "<p class='error'>* En az bir tane ulaşım şekli belirtmelisiniz.</p>";
    } else if($V_emailSubject == "") {
    echo "<p class='error'>* Mesajın konusunu belirtiniz.</p>";
    } else if($V_mailMessage == "") {
    echo "<p class='error'>* Mesaj içeriğini yazmalısınız.</p>";
    } else if(strlen($V_mailMessage) <= 15) {
    echo "<p class='error'>* Mesajın içeriği 15 karakterden az olamaz.</p>";
    }


    alanlar boş olsa dahi mesaj önderimi sağlanıyor. if else yapısından else'leri kaldırdım, her şartı ayrı ayrı sorguladım olmadı.

    if($V_userName == "" || $V_userName === NULL || $V_userName == NULL || empty($V_userName) ) hiç biri çalışmadı.

    eksik alan kontrolü ve eksik alan var ise mesaj gönderilmesin kısmını nasıl sağlayacağım?





    Ayrıca, bu yapı içine 5 mb boyutu geçmeyen dosya ataçlama imkanı vermek istiyorum. Ataç eklenmediyse hata veriyor. Aşağıdaki yapıyı denedim olmadı. Destek olur musunuz?

    foreach ($_FILES["attachment"]["name"] as $k => $v) {
    $mail->AddAttachment( $_FILES["attachment"]["tmp_name"][$k], $_FILES["attachment"]["name"][$k] );

    if(isset($_FILES['attachment']) || isset($_FILES["attachment"])) {
    $errors = array();
    $maxsize = 5242880; // 5mb; 2097152; // 2mb
    $acceptable = array(
    'application/pdf',
    'image/jpeg',
    'image/jpg',
    'image/gif',
    'image/png'
    );
    };

    if(($_FILES['attachment']['size'] >= $maxsize) || ($_FILES["attachment"]["size"] == 0)) {
    $errors[] = 'File too large. File must be less than 5 megabytes.';
    }

    if((!in_array($_FILES['attachment']['type'], $acceptable)) && (!empty($_FILES["attachment"]["type"]))) {
    $errors[] = 'Invalid file type. Only PDF, JPG, GIF and PNG types are accepted.';
    }

    if(count($errors) === 0) {
    move_uploaded_file($_FILES['attachment']['tmpname'], '/store/to/location.file');
    } else {
    foreach($errors as $error) {
    echo '<script>alert("'.$error.'");</script>';
    }

    die(); //Ensure no more processing is done
    }




  • quote:

    birçok sorunu çözdüm fakat şu alan ile ilgili sıkıntım devam ediyor.


    if($V_userName == "") {

    echo "<p class='error'>* Ad-soyad bölümünü boş bırakmamalısınız.</p>";

    } else if($V_userEmail == "") {

    echo "<p class='error'>* E-mail bölümünü boş bırakmamalısınız.</p>";

    } else if($V_reachType == "") {

    echo "<p class='error'>* En az bir tane ulaşım şekli belirtmelisiniz.</p>";

    } else if($V_emailSubject == "") {

    echo "<p class='error'>* Mesajın konusunu belirtiniz.</p>";

    } else if($V_mailMessage == "") {

    echo "<p class='error'>* Mesaj içeriğini yazmalısınız.</p>";

    } else if(strlen($V_mailMessage) <= 15) {

    echo "<p class='error'>* Mesajın içeriği 15 karakterden az olamaz.</p>";

    }





    alanlar boş olsa dahi mesaj önderimi sağlanıyor. if else yapısından else'leri kaldırdım, her şartı ayrı ayrı sorguladım olmadı.



    if($V_userName == "" || $V_userName === NULL || $V_userName == NULL || empty($V_userName) ) hiç biri çalışmadı.



    eksik alan kontrolü ve eksik alan var ise mesaj gönderilmesin kısmını nasıl sağlayacağım?




    Soyle denermisin?


    if($V_userName == "") {

    echo "<p class='error'>* Ad-soyad bölümünü boş bırakmamalısınız.</p>";

    }

    if($V_userEmail == "") {

    echo "<p class='error'>* E-mail bölümünü boş bırakmamalısınız.</p>";

    }

    if($V_reachType == "") {

    echo "<p class='error'>* En az bir tane ulaşım şekli belirtmelisiniz.</p>";

    }

    if($V_emailSubject == "") {

    echo "<p class='error'>* Mesajın konusunu belirtiniz.</p>";

    }

    if($V_mailMessage == "") {

    echo "<p class='error'>* Mesaj içeriğini yazmalısınız.</p>";

    }

    if(strlen($V_mailMessage) <= 15) {

    echo "<p class='error'>* Mesajın içeriği 15 karakterden az olamaz.</p>";

    }



    < Bu mesaj bu kişi tarafından değiştirildi dgnzcn -- 17 Şubat 2020; 12:25:31 >




  • dgnzcn kullanıcısına yanıt
    " if else yapısından else'leri kaldırdım, her şartı ayrı ayrı sorguladım olmadı."

    denemiştim. olmuyor.
  • quote:

    Orijinalden alıntı: erdemmetin

    " if else yapısından else'leri kaldırdım, her şartı ayrı ayrı sorguladım olmadı."

    denemiştim. olmuyor.
    formdan gelen degisken degerleri ekrana yazdirilabiliyor mu?

    ornek:
    echo $V_userName; bos birakmadan tek tek kontrol edin degerler ekrana yazdiriliyor mu?

    "" yerine null denediniz mi?



    < Bu mesaj bu kişi tarafından değiştirildi dgnzcn -- 17 Şubat 2020; 16:38:52 >
  • dgnzcn kullanıcısına yanıt
    echo $V_userName; yaptığımda ismi getiriyor. hatta tüm alanları denedim tamamı geliyor.
    "" yerine null denedim çalışmadı.

    dikkatimi çeken bazı durumlar oldu.
    a) eğer formda tüm alanlar boş ise gönder butonuna basılınca işlem yapılmıyor.
    b) herhangibir alan boş ise gönder butonuna basılınca işlem yapılmıyor.
    c) email girişinde @ işareti yoksa gönder butonuna basılınca işlem yapılmıyor.
    yani yapıya uymayan alan varsa mail gönderimi olmuyor ama hata mesajları gözükmüyor.

    Not: iletişim formu html sayfa içinde action alanına php adresini yazdım.
  • quote:

    Orijinalden alıntı: erdemmetin

    echo $V_userName; yaptığımda ismi getiriyor. hatta tüm alanları denedim tamamı geliyor.
    "" yerine null denedim çalışmadı.

    dikkatimi çeken bazı durumlar oldu.
    a) eğer formda tüm alanlar boş ise gönder butonuna basılınca işlem yapılmıyor.
    b) herhangibir alan boş ise gönder butonuna basılınca işlem yapılmıyor.
    c) email girişinde @ işareti yoksa gönder butonuna basılınca işlem yapılmıyor.
    yani yapıya uymayan alan varsa mail gönderimi olmuyor ama hata mesajları gözükmüyor.

    Not: iletişim formu html sayfa içinde action alanına php adresini yazdım.
    dosyalari paylasabilirsen bakmaya calisayim...
  • quote:

    Orijinalden alıntı: dgnzcn

    dosyalari paylasabilirsen bakmaya calisayim...

    Alıntıları Göster
    eline sağlık. zaman ayırıp ilgilendiğin için çok teşekkür ederim. çok makbule geçti.
  • rica ederim...
  • diğer mail adresim dediğin gmail mi?

    eğer gmailse, güvenlik sıkıntısı olabilir. benim de başıma gelmişti benzer bir durum. google hesap ayarlarıyla çözmüştüm



    < Bu mesaj bu kişi tarafından değiştirildi mckoray -- 21 Şubat 2020; 20:54:4 >
  • if($V_userName == "") { die (

    * Ad-soyad bölümünü boş bırakmamalısınız.

    );
    }// birdeböyle dene...



    < Bu mesaj bu kişi tarafından değiştirildi ozernet -- 21 Şubat 2020; 22:8:59 >
  • if(!$V_userName) { msg("hata","Hata !!!", "Uye adı boş bırakılamaz .!"); }
  • quote:

    Orijinalden alıntı: mckoray

    diğer mail adresim dediğin gmail mi?

    eğer gmailse, güvenlik sıkıntısı olabilir. benim de başıma gelmişti benzer bir durum. google hesap ayarlarıyla çözmüştüm
    aslında hotmail veya gmail olarak düşünmüştüm ama güvenlik protokollerine takılıyor. bende web adresimin uzantısında ikinci bir mail adresi açıp "maillist" olarak ayarlayıp yönlendirme yapmak istedim.
    BCC adres eklediğimde phpmailer hata veriyordu. ben de "AddAddress" alanına ekledim. sorun çözüldü.
  • ozernet O kullanıcısına yanıt
    ilgine teşekkür ederim. sorunu çözdüm.
    konuyu inceleyen başka arkadaşlar olursa, alan için uzunluk kontrolü de yapabilirler.
  • merhaba bir makale hazırladım mail göndermek isteyenler için belki işinize yarar:https://forum.donanimhaber.com/php-mailer-ile-mail-gonderme--142157681
  • quote:

    Orijinalden alıntı: Phpprogramlama

    merhaba bir makale hazırladım mail göndermek isteyenler için belki işinize yarar:https://forum.donanimhaber.com/php-mailer-ile-mail-gonderme--142157681
    düşünce olarak güzel bir sayfa hazırlamışsın. eline sağlık. zamanla daha fazla şey bulunacaktır elbette. Allah muaffak etsin.
  • Merhaba, phpde mail gönderimi ile alakalı böyle bir makale kullanmıştım daha öncehttp://yazilimdersi.info/makaleler/detay/111/php-ile-gmail-smtp-kullanarak-email-gonderimi bu makalede de phpmailer kütüphanesi ile gonderim yapılıyordu. Umarim isini görür.
  • yazilimcigenc34 Y kullanıcısına yanıt
    işimi çözdüm ama arşivde beklemesinde fayda var. ilgine teşekkür ederim.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.