• 20-11-2023, 15:49:36
    #1
    
    <?php
    
    //Import PHPMailer classes into the global namespace
    //These must be at the top of your script, not inside a function
    
      require '../assets/vendor/phpmailer/src/Exception.php';
      require '../assets/vendor/phpmailer/src/PHPMailer.php';
      require '../assets/vendor/phpmailer/src/SMTP.php';
    
        $mail = new PHPMailer();  // create a new object
        $mail->IsSMTP(); // enable SMTP
        $mail->SMTPDebug = 0;  // debugging: 1 = errors and messages, 2 = messages only
        $mail->SMTPAuth = true;  // authentication enabled
        $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
        $mail->Host = 'smtp.gmail.com';
        $mail->Port = 465; 
        $mail->Username = 'mailadresim@mail.com';  
        $mail->Password = 'sifrem';           
        $mail->SetFrom('mailadresim@mail.com', 'sender');
        $mail->Subject = 'deneme konu';
        $mail->Body = 'deneme body';
        $mail->AddAddress('mailadresim@mail.com');
        if(!$mail->Send()) {
            $error = 'Mail error: '.$mail->ErrorInfo; 
            return false;
        } else {
            $error = 'Message sent!';
            return true;
        }
    ?>
    Html'deki form buraya post method ile gidiyor. acaba sizce sorun ne oalbilir?
  • 20-11-2023, 15:52:28
    #2
    Hata alıyor musunuz? Şuan kod mantığı olarak doğru ama ilgili kütüphane dosyalarını çekmiyor olabilir, mailler gönderilmeden spam olarak blacklist olmuş olabilir vs. Aldığınız hatayı iletirseniz daha net yorum yapabiliriz.
  • 20-11-2023, 15:54:46
    #3
    Gmail'in SMTP sunucusu TLS kullanır, SSL değil. Şu satırı:
    $mail->SMTPSecure = 'tls';
    TLS kullanıyorsanız, port 465 değil 587 olmalıdır. Şu satırı:
    $mail->Port = 587;
    1. Güvenli Olmayan Uygulamalara İzin ve Google Hesabınız: Google hesabınızın güvenli olmayan uygulamalara erişime izin verdiğinden emin olun. Bu ayarı Google Hesabı ayarlarından "Daha az güvenli uygulamalara izin ver" seçeneği ile yapabilirsiniz. Ancak güvenlik nedeniyle bu önerilmez. Daha iyi bir yöntem, Google Hesabınızdan üretilen bir "Uygulama Şifresi" kullanmaktır.
    2. Uygulama Şifresi: Google hesabınızda iki faktörlü kimlik doğrulama etkinse, bir "Uygulama Şifresi" üretmeniz ve bu şifreyi PHP betiğinizde Gmail şifreniz olarak kullanmanız gerekebilir. Bir Uygulama Şifresi oluşturmak için: https://myaccount.google.com/apppasswords
    3. Hata İşleme: E-postanın gönderilip gönderilmediğini $mail->Send() ile kontrol ediyorsunuz, ancak gerçek hata bilgilerini kaydetmiyorsunuz. Hatanın ayrıntılarını yazdırmayı düşünün:
    if(!$mail->Send()) {
        $error = 'Mail hatası: '.$mail->ErrorInfo;
        echo $error; // veya hata bilgisini hata ayıklama için bir yere kaydedin
        return false;
    } else {
        $error = 'Mesaj gönderildi!';
        echo $error; // veya hata bilgisini hata ayıklama için bir yere kaydedin
        return true;
    }
    ChatGPT Yanıtı.
  • 20-11-2023, 15:55:39
    #4
    Gmail SMTP kullanıyorsanız Gmail SMTP artık 3. parti uygulamaları desteklemiyor. Benim de yaptığım çalışmalar patlamıştı birkaç ay önce.