Misafir adlı üyeden alıntı:
mesajı görüntüle
Bu şekilde denersen mail_logs.txt isimli txt oluşturur ve içine adım adım hataları yazar sorunun neyden kaynaklandığını daha kolay öğrenirsiniz
<!doctype html>
<html lang="tr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<script src="https://www.google.com/recaptcha/api.js?hl=tr"></script>
<link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" />
</head>
<body>
<!-- Bootstrap Responsive İletişim Formu Start *** -->
<br /> <!-- Bir satır boşluk -->
<h1 style="text-align:center;">İletişim Formu</h1> <!-- Form başlığı -->
<br /> <!-- Bir satır boşluk -->
<div class="container-fluid">
<div class="row">
<div class="col-md-4"></div> <!-- 4 sütun Sol Tarafa Boş Verdik -->
<div class="col-md-4"> <!-- 4 Sütun Ortaladık Başlangıcı -->
<form action="iletisim.php" method="post"> <!-- Form Başlangıcı -->
<div class="form-group"> <!-- Ad Soyad Text Alanı -->
<input required="required" name="AdiSoyadi" id="name" type="text" class="form-control" placeholder="Adınız ve Soyadınız">
<small class="form-text text-muted">Lütfen adınızı ve soyadınızı girin.</small>
</div> <!-- Ad Soyad Text Alanı Bitti -->
<div class="form-group"> <!-- Mail Adresi Text Alanı -->
<input required="required" name="MailAdresi" type="email" class="form-control" placeholder="E-Posta Adresiniz">
<small class="form-text text-muted">Lütfen mail adresinizi girin.</small>
</div> <!-- Mail Adresi Text Alanı Bitti -->
<div class="form-group"> <!-- Mesaj Konusu Text Alanı -->
<input required="required" name="MesajKonusu" type="text" class="form-control" placeholder="Mesajınızın Konusu">
<small class="form-text text-muted">Lütfen mesajınızın konusunu girin.</small>
</div> <!-- Mesaj Konusu Text Alanı Bitti -->
<div class="form-group"> <!-- Mesaj Text Alanı -->
<textarea rows="6" cols="10" name="Mesaj" required="required" class="form-control" placeholder="Mesajınızını Yazın"></textarea>
</div> <!-- Mesaj Text Alanı Bitti -->
<div class="form-group">
<div class="g-recaptcha" data-sitekey="6LddeJMrAAAAANw5XOIXSBgiIoAdGC22L42rrToG"></div>
</div>
<button type="submit" onclick="btnkaldir()" id="gonder" class="btn btn-primary" >Gönder</button> <!-- Form Gönderme Butonu -->
<button type="reset" class="btn btn-success">Temizle</button> <!-- Form Temizleme Butonu -->
</form> <!-- Form Bitiş -->
</div> <!-- 6 Sütun Ortaladık Tamamlandı -->
<div class="col-md-4"></div> <!-- 4 sütun Sol Tarafa Boş Verdik -->
</div>
</div>
<!-- Bootstrap Responsive İletişim Formu End *** -->
</body>
</html>
<script>
function btnkaldir()
{
var x = document.getElementById("gonder");
x.style.display = "none";
}
</script>
<?php
// LOG FONKSİYONU
function writeLog($message) {
$logFile = 'mail_logs.txt';
$timestamp = date('Y-m-d H:i:s');
$logMessage = "[$timestamp] $message" . PHP_EOL;
file_put_contents($logFile, $logMessage, FILE_APPEND | LOCK_EX);
echo "<div class='alert alert-info'>LOG: $message</div>";
}
// Hata raporlama açık (geliştirme aşamasında)
error_reporting(E_ALL);
ini_set('display_errors', 1);
writeLog("Script başlatıldı");
// POST verisi gelip gelmediğini kontrol et
if ($_POST) {
writeLog("POST verisi alındı: " . print_r($_POST, true));
} else {
writeLog("POST verisi yok, form henüz gönderilmemiş");
}
//Form'dan Bütün Değerler Post Methodu ile Çekiliyor
$AdiSoyadi = isset($_POST['AdiSoyadi']) ? trim(strip_tags($_POST['AdiSoyadi'])) : '';
$MailAdresi = isset($_POST['MailAdresi']) ? trim(strip_tags($_POST['MailAdresi'])) : '';
$MesajKonusu = isset($_POST['MesajKonusu']) ? trim(strip_tags($_POST['MesajKonusu'])) : '';
$Mesaj = isset($_POST['Mesaj']) ? trim(strip_tags($_POST['Mesaj'])) : '';
writeLog("Form verileri alındı - Ad: '$AdiSoyadi', Mail: '$MailAdresi', Konu: '$MesajKonusu'");
//Form'dan Bütün Değerler Post Methodu ile Çekiliyor Tamamlandı
if($AdiSoyadi && $MailAdresi && $MesajKonusu && $Mesaj){ //Form'dan bütün değerler geliyorsa mail gönderme işlemini başlatıyoruz.
writeLog("Tüm form alanları dolu, mail gönderme işlemi başlatılıyor");
// RECAPTCHA KONTROLÜ
writeLog("reCAPTCHA kontrolü başlıyor");
if (isset($_POST['g-recaptcha-response'])) {
$captcha = $_POST['g-recaptcha-response'];
writeLog("reCAPTCHA response alındı: " . substr($captcha, 0, 20) . "...");
} else {
writeLog("reCAPTCHA response bulunamadı");
$captcha = '';
}
if (!$captcha) {
writeLog("reCAPTCHA boş, işlem durduruluyor");
echo '<script>alert("Lütfen robot olmadığınızı doğrulayın.");</script>';
exit;
}
// reCAPTCHA doğrulama
$secretKey = "6LddeJMrAAAAANw5XOIXSBgiIoAdGC22L42rrToG"; // Bu secret key olmalı, site key değil!
$verifyURL = "https://www.google.com/recaptcha/api/siteverify?secret=" . $secretKey . "&response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR'];
writeLog("reCAPTCHA doğrulama URL'si hazırlandı");
$kontrol = file_get_contents($verifyURL);
writeLog("reCAPTCHA API'dan gelen cevap: " . $kontrol);
$kontrol = json_decode($kontrol);
if ($kontrol->success == false) {
writeLog("reCAPTCHA doğrulaması başarısız: " . print_r($kontrol, true));
echo '<script>alert("reCAPTCHA doğrulaması başarısız!");</script>';
exit;
} else {
writeLog("reCAPTCHA doğrulaması başarılı");
}
// PHPMailer dosyalarının varlığını kontrol et
if (!file_exists('phpmail/class.phpmailer.php')) {
writeLog("HATA: phpmail/class.phpmailer.php dosyası bulunamadı!");
echo '<div class="alert alert-danger">PHPMailer dosyası bulunamadı!</div>';
exit;
}
if (!file_exists('phpmail/class.smtp.php')) {
writeLog("HATA: phpmail/class.smtp.php dosyası bulunamadı!");
echo '<div class="alert alert-danger">SMTP dosyası bulunamadı!</div>';
exit;
}
writeLog("PHPMailer dosyaları kontrol edildi, mevcut");
//Php Smtp Mailler Sınıfını Sayfaya Dahil Ediyoruz
include ('phpmail/class.phpmailer.php');
include ('phpmail/class.smtp.php');
writeLog("PHPMailer sınıfları dahil edildi");
//Mail Bağlantı Ayarları
//Mail Hangi Hesaptan Gönderilecek ise onun bilgilerini yazın.
$MailSmtpHost = "smtp.gmail.com";
$MailUserName = "benimmailim@gmail.com"; // GERÇEK MAİL ADRESİNİ YAZ
$MailPassword = "benimmailim"; // GERÇEK ŞİFREYİ VEYA APP PASSWORD YAZ
//Mail Bağlantı Ayarları Tamamlandı
writeLog("Mail ayarları tanımlandı - Host: $MailSmtpHost, User: $MailUserName");
//Doldurulan Form Mail Olarak Kime Gidecek?
$MailKimeGidecek = "benimmailim@gmail.com"; // GERÇEK MAİL ADRESİNİ YAZ
writeLog("Alıcı mail adresi: $MailKimeGidecek");
try {
writeLog("PHPMailer nesnesi oluşturuluyor");
$mail = new PHPMailer(true); // true parametresi exception fırlatır
writeLog("SMTP ayarları yapılıyor");
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = $MailSmtpHost;
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->Username = $MailUserName;
$mail->Password = $MailPassword;
// Debug modunu aç
$mail->SMTPDebug = 2; // Detaylı debug
$mail->Debugoutput = function($str, $level) {
writeLog("SMTP Debug: $str");
};
writeLog("Gönderici ve alıcı ayarları yapılıyor");
$mail->SetFrom($mail->Username, 'İletişim Formu');
$mail->AddAddress($MailKimeGidecek, 'Alıcı');
writeLog("Mail içeriği hazırlanıyor");
$mail->CharSet = 'UTF-8';
$mail->Subject = $MesajKonusu;
$mail->MsgHTML("Ad: "."$AdiSoyadi". "<br />" ."E-Posta: "."$MailAdresi". "<br />" ."Mesaj: "."$Mesaj");
writeLog("Mail gönderiliyor...");
if($mail->Send()) {
writeLog("Mail başarıyla gönderildi!");
echo '<script>alert("Mail gönderildi!");</script>';
header("Refresh: 0;");
} else {
writeLog("Mail gönderilemedi: " . $mail->ErrorInfo);
echo '<div class="alert alert-danger">Mail gönderilemedi: ' . $mail->ErrorInfo . '</div>';
}
} catch (Exception $e) {
writeLog("PHPMailer Exception: " . $e->getMessage());
echo '<div class="alert alert-danger">Mail gönderilirken hata: ' . $e->getMessage() . '</div>';
}
} else {
if ($_POST) {
writeLog("Form alanları eksik - Ad: '$AdiSoyadi', Mail: '$MailAdresi', Konu: '$MesajKonusu', Mesaj uzunluğu: " . strlen($Mesaj));
echo '<div class="alert alert-warning">Lütfen tüm alanları doldurun!</div>';
}
}
writeLog("Script sonu");
?>
<style>
.alert {
margin: 10px;
padding: 10px;
border-radius: 5px;
}
.alert-info {
background-color: #d1ecf1;
border-color: #bee5eb;
color: #0c5460;
}
.alert-danger {
background-color: #f8d7da;
border-color: #f5c6cb;
color: #721c24;
}
.alert-warning {
background-color: #fff3cd;
border-color: #ffeaa7;
color: #856404;
}
</style>