PHPMailer - SweetAlert echo çalışmıyor.
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.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (8)
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.
Çö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;
Ö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...
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 :)
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?