Adalente adlı üyeden alıntı: mesajı görüntüle
Canlı kontrol etmek gerekir kodları nerede sorun olduğun buna göre bulup eklemek gerekir.
Sorunu aşağıdaki kod sıralaması ile çözdüm, teşekkür ederim.
<?php
require_once('config.php');

// Initialize the session
session_start();

//print_r($_SESSION);
//yetki kontrolü yap
if($_SESSION['duyuru_yetki'] != "1"){
  header('Location: ../login.php');
  session_destroy();
}

//bugünki tarih
$currentDate = date('Y-m-d');
// Check if the user is logged in, otherwise redirect to login page
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
    header("location: ../login.php");
    exit;
}

$user_id = $_SESSION['id'];

ini_set('display_errors', 1); // Hata mesajlarını görüntülemeyi aktif hale getirin
error_reporting(E_ALL); // Tüm hata seviyelerini görüntüle


/* duyuru_duzenle.php üzerinden alınan veriler */
$title = trim($_POST['title']);
$body = trim($_POST['body']);
$category_id = trim($_POST['category_id']);
$created_user = $user_id; // Kullanıcının id'sini al


$json = array('email' => array('status' => false, 'msg' => ''), 'post' => array('status' => false, 'msg' => ''));

// Verileri veritabanına ekleyen SQL sorgusunu oluşturun
$sql = "INSERT INTO announcements (title, body, category_id, created_user) VALUES ('$title', '$body', '$category_id', '$user_id')";
// SQL sorgusunu çalıştırın
if (mysqli_query($conn, $sql)) {
  // Sorgu başarıyla çalıştırıldıysa, post eklendi
  $json['post']['status'] = true;
  $json['post']['msg'] = 'Post eklendi';
} else {
  // Sorgu çalıştırılamadıysa, hata mesajını yazdırın
  $json['post']['msg'] = 'Post eklenemedi: ' . mysqli_error($conn);
  exit(json_encode($json));
}

$sql = "SELECT id FROM announcements ORDER BY id DESC LIMIT 1";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
$last_id = $row['id'];

// Formdan gönderilen verileri alın
/*$title = mysqli_real_escape_string($conn, $_POST['title']);
$body = mysqli_real_escape_string($conn, $_POST['body']);
$category_id = mysqli_real_escape_string($conn, $_POST['category_id']);
*/

$query = "SELECT * FROM categories WHERE id = $category_id";
$result2 = mysqli_query($conn, $query);

if (mysqli_num_rows($result) > 0) {
  $row2 = mysqli_fetch_assoc($result2);
  $category_name = $row2['name'];
}

/* Burada mail içeriği 500 karakterden uzunsa içeriği değiştiriyoruz.*/
$mail_uzunluk_kontrolu = $body;
$body_length = str_word_count($mail_uzunluk_kontrolu);
if($body_length > 500){
    $mail_uzunluk_kontrolu = '
    Bu duyuru içeriği karakter sınırını aştığı için Outlook üzerinde düzgün görüntülenememektedir.
    </br>
    </br>
    <a href="https://cloud.*****.com.tr/duyuru/duyuru_oku.php?id='. $last_id .'" style="color:#000000;">Bu yazının tamamını buraya tıklayarak okuyabilirsiniz.</a>
    ';
}

$ozet = '
<html>
<!--[if mso]>
<style> 
  body,table tr,table td,a, span,table.MsoNormalTable {  font-family:Arial, Helvetica, sans-serif !important; }
</style>
<!--<![endif]-->
  <center><img style="text-align: center;" src="https://cloud.*****.com.tr/duyuru/assets/img/*****-logo-mail.png"></center>
  <center><table>
    <td valign="middle" align="center" style="width: 400px; padding-top: 20px;">
      <h2 style="font-family: Arial;">['. $row2['name'] .'] '. $title .'</h2>
    </td>
    <td></td>
  </table></center>
  <center><table>
    <td valign="middle" align="center" style="padding-top:20px; width: 400px;">
      <p style="font-family: Arial;">'. $mail_uzunluk_kontrolu .'</p>
    </td>
  </table></center>
  <center><table style="padding-top:20px; font-family: Arial; font-size:10px;">
    <td valign="middle" align="center" style="width: 400px; font-family: Arial; font-size:10px;">
      <a href="https://cloud.*****.com.tr/duyuru/duyuru_oku.php?id='. $last_id .'" style="color:#000000;">Bu yazı Outlook üzerinde düzgün görüntülenmiyor ise buraya tıklayarak Web üzerinden okuyabilirsiniz.</a>
    </td>
  </table></center>
  <center><table style="font-family: Arial; font-size:10px;">
    <td valign="middle" align="center" style="width: 400px; font-family: Arial; font-size:10px;">
      <p>**Resimlerin tam boyutlu haline ulaşmak için üzerine tıklayabilirsiniz.</p>
    </td>
  </table></center>
</html>
';

// Import PHPMailer classes into the global namespace 
use PHPMailer\PHPMailer\PHPMailer; 
use PHPMailer\PHPMailer\Exception; 
 
// Include PHPMailer library files 
require 'src/Exception.php'; 
require 'src/PHPMailer.php'; 
require 'src/SMTP.php'; 
//require 'index.php';

// Create an instance of PHPMailer class 
$mail = new PHPMailer;

// UTF-8
$mail->CharSet = 'UTF-8';
$mail->Encoding = 'base64';

// SMTP configuration
//$mail->IsSMTP();          //Çalışmazsa etkinleştir.
$mail->Host     = 'email.*****.com.tr';
$mail->SMTPAuth = true;
$mail->Username = '@*****.com.tr';
$mail->Password = '';
$mail->SMTPSecure = 'tls';
$mail->Port     = 587;

// Sender info 
$mail->setFrom('@*****.com.tr', '***** Duyuru Sistemi'); 
 
// Add a recipient 
$mail->addAddress('tsonkaya@*****.com.tr'); 
 
//cc bölümü  
//$mail->addCC('tsonkaya@*****.com.tr'); 

// Email subject 
$mail->Subject = 'Duyuru: ['. $row2['name'] .'] '. $title .''; // İleti konusu
 
// Set email format to HTML 
$mail->isHTML(true);

// Email body content 
$mailContent = '';

$mail->Body   = $ozet;

if(!$mail->send()) {
    $json['email']['msg'] = 'E-posta gönderilemedi: ' . $mail->ErrorInfo;
} else {
  $json['email']['status'] = true;
  $json['email']['msg'] = 'E-posta başarıyla gönderildi.';
} 

// Veritabanı bağlantısını kapatın
mysqli_close($conn);

header('Content-type: application/json');

exit(json_encode($json));
?>