v2.5.2
Giriş yap

PHPMailer - SweetAlert echo çalışmıyor.

rasimk
777 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Ajax kullanarak bir form POST ediyorum, daha sonra çıkan sonuca göre echo ile belirlediğim şeyleri yazdırarak SweetAlert basıyorum.
Fakat bu formda ki bilgilere göre E-Posta gönderdiğim zaman echo ile yazdırdığım bilgilere göre bir alert bastıramıyorum. Ama diğer işlemlerde(veri tabanı kayıtı/E-Posta Gönderme) bir sorun olurmuyor.
Biraz Karışık olmuş olabilir kısaca belirtmem gerekirse Phpmailer ile echoyu kullanamıyorum.

Bunun nedeninin E-Postanın gidişinin 20-30 saniyeyi bulması olduğunu düşündüm fakat emin olamadım.

[PHPMAİLER KODLARIM]

<?php
    $mail = new PHPMailer(true);
    try {
        //Server settings
        $mail->SMTPDebug = $debug;                                 // Debug Mode

        // Step 2 (Optional) - If you don't receive the email, try to configure the parameters below:

        $mail->IsSMTP();                                         // Set mailer to use SMTP
        $mail->Host = 'smtp.gmail.com';				       // Specify main and backup server
        $mail->SMTPAuth = true;                                  // Enable SMTP authentication
        $mail->Username = 'X';                    // SMTP username
        $mail->Password = 'X';                              // SMTP password
        $mail->SMTPSecure = 'tls';                               // Enable encryption, 'ssl' also accepted
        $mail->Port = 587;   								       // TCP port to connect to


    
        //Recipients
        $mail->setFrom('X', 'X');
        $mail->addAddress($eposta, $ad);     // Add a recipient
        
    
        // Content
        $mail->isHTML(true);
        $mail->CharSet = 'UTF-8';                                  // Set email format to HTML
        $mail->Subject = 'X';
        $mail->Body    = 'X';
        
    
        $mail->send();
        echo "olumlu";
    } catch (Exception $e) {
        echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
    }
?>

Soru biraz karışık olduysa şimdiden özür dilerim.

Cevap yaz
Cevaplar (8)
qplot
1275 gün önce

ben işlemi sessiona atıyorum oradanda sweetalertı calıstırıyorum

$_SESSION['basarili']=time()+10;

sonra gecerlı zamandan buyukse sweet alertı if ile calıstırıyorum dene ıstersen

rasimk
1275 gün önce

lafcanbazı dediğini zaten yaptım fakat onda da aynı sonucu verdiği için buraya yazmaya gerek duymadım.

lafcanbazi
1276 gün önce

birinci kisim mail gonderilen php sayfasinda mailin gonderildigini kontrol etmen gerekir
ikinci kisimda ise bu hata mesajlarini karsilaman gerekiyor

<?php
//mail gonderme islemleri

$result = $mail->Send();

//gonderilmis mi kontrol ediyoruz
if($result){
    echo "olumlu";
}else{
    echo "hata";
}

?>

js dosyasinda ise

olumlu ve hata mesajina gore alert bastiriyorsun.

rasimk
1276 gün önce

Biraz geç oldu ama ikinizde cevapları için teşekkür ederim.
Localde çalıştırmaya çalışmıştım fakat olmayınca hiç sunucuya atmadım. İkinizin dediklerini de deneyeceğim.

TEŞEKKÜR EDERİM.

zafer
1278 gün önce

Çözüm için öncelikle ajax işleminde "success" fonksiyonuna geçilen "f" değerinin içeriniğine bakmak gerek. Buraya içerik doğru bir şekilde aktarılmış mı?

Belki php tarafından gönderdiğin metin yerine php tarafında aşağıdaki gibi bir işlem yapman gerekebilir.

...

$jsonstring = json_encode('olumlu');
echo $jsonstring;
webdevyusuf
1278 gün önce

Öncelikle merhaba bu sorun ile bende karşılaşmıştım localde genellikle çalışmıyor ama sunucuda
çalışıyorsanız domain'niniz kara liste'dedir bunu sunucuyla konuşarak yerini değiştirebilirsiniz

ancak localde ise xampp genellikle çalışıyor ama bazen çalışmıyor onu çözemedim daha büyük ihtimalle
oda ip'lerle ilgilidir ama bilgisayara format attığımda xampp çalışmıştı...

Bunları dene kara liste olayınıda iyice araştır eğer sunucuda çalışıyorsan domain vs. kara listede mi
diye

bu arada jquery'de kullansan var ile tanımlama let veya const kullan

İyi çalışmalar...

rasimk
1280 gün önce
function kaydet(){
    var bilgiler =$("#bilgiler").serialize();
    $.ajax({
        type:"POST",
        data: bilgiler,
        url:"x",
        success : function(f){
            if($.trim(f) == "hata"){
                sweetAlert("Hata" , "T.C. Kimlik Numarası 11 Haneden Az Olamaz" , "error");
            }else if ($.trim(f) == "olumlu"){
                sweetAlert("Kaydınız Başarıyla Alınmıştır" , "Kayıtınız İçin Teşekkür Ederiz. Ekiplerimiz sizinle iletişime geçecektir." , "success");
            }else if ($.trim(f) == "hata2"){
                sweetAlert("Hata" , "Bu T.C Kimlik numarası ile daha önceden kayıt olunmuştur." , "error");
            }else if ($.trim(f) == "hata3"){
                sweetAlert("Hata" , "Telefon Numarası 10 Haneden Az Olamaz " , "error");
            }else if ($.trim(f) == "hata4"){
                sweetAlert("Hata" , "Bu Telefon Numarası Daha Önceden Kullanılmıştır. " , "error");
            }else if ($.trim(f) == "hata5"){
                sweetAlert("Hata" , "Bu E-Posta Adresi Daha Önceden Kullanılmıştır. " , "error");
            }else if ($.trim(f) == "hata6"){
                sweetAlert("Hata" , "Lütfen recaptcha bölümünü işaretleriniz. " , "error");
            }
            $('.form')[0].reset();
        }
    });
}

Hatalar ya da diğer alertler normalde sorunsuz şekilde çalışıyor.
Olay E-Posta'da patlıyor, muhtemelen bir şeyi yanlış yapıyorum ama anlayamadım.
Konsolda herhangi bir hata almıyorum.
Ajax pek kullanmadığım için kodlar kötü olabilir :)

tayfunerbilen
1280 gün önce

bu durumda javascript kodlarına bakmamız gerekir, onları da soruya ekler misin. ayrıca console'da request attığında bir hata alıyor musun?