لا حاجة إذن إلى استخدام PHPMailer، فما تحتاجه هو الإعتماد على Telegram Bot API وإرسال محتوى الرسالة إلى البوت الخاص بك.
أي إرسال الـ data الخاصة بالنموذج إلى الـ API التالي:
$url = "https://api.telegram.org/bot{$botToken}/sendMessage";
بالطبع botToken هو متغير عليك إنشائه ووضع قيمة التوكن الخاصة بالبوت الذي قمت بإنشائه على تليجيرام، وستحتاج أيضًا إلى إرسال الـ chatId الخاص بالبوت مع البيانات في جسم الطلب body.
وبالطبع عليك تهيئة نص الرسالة ومعالجته قبل إرساله إلى هاتفك، ومعالجة الأخطاء الواردة، كالتالي:
<?php
header('Content-Type: application/json');
define('BOT_TOKEN', 'هنا'); // ضع التوكن هنا
define('CHAT_ID', 'هنا'); // ضع معرف الشات هنا
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
echo json_encode(['ok' => false, 'message' => 'يجب استخدام طريقة POST فقط']);
exit;
}
$errors = [];
$name = trim($_POST['name'] ?? '');
$email = trim($_POST['email'] ?? '');
$message = trim($_POST['message'] ?? '');
if (empty($name)) {
$errors[] = 'حقل الاسم مطلوب.';
}
if (empty($email)) {
$errors[] = 'حقل البريد الإلكتروني مطلوب.';
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = 'صيغة البريد الإلكتروني غير صحيحة.';
}
if (empty($message)) {
$errors[] = 'حقل الرسالة مطلوب.';
}
if (!empty($errors)) {
http_response_code(400);
echo json_encode(['ok' => false, 'errors' => $errors]);
exit;
}
$safe_name = htmlspecialchars($name, ENT_QUOTES, 'UTF-8');
$safe_email = htmlspecialchars($email, ENT_QUOTES, 'UTF-8');
$safe_message = htmlspecialchars($message, ENT_QUOTES, 'UTF-8');
$text = "<b>📩 رسالة جديدة من موقعك</b>\n\n";
$text .= "<b>👤 الاسم:</b> " . $safe_name . "\n";
$text .= "<b>📧 البريد:</b> " . $safe_email . "\n";
$text .= "<b>💬 الرسالة:</b>\n" . $safe_message;
$url = "https://api.telegram.org/bot" . BOT_TOKEN . "/sendMessage";
$data = [
'chat_id' => CHAT_ID,
'text' => $text,
'parse_mode' => 'HTML'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curl_error = curl_error($ch);
curl_close($ch);
if ($curl_error) {
http_response_code(500);
echo json_encode(['ok' => false, 'message' => 'فشل الاتصال بـ cURL: ' . $curl_error]);
} elseif ($http_code !== 200) {
http_response_code(500);
echo json_encode(['ok' => false, 'message' => 'واجهة التلغرام أرجعت خطأ.', 'response' => json_decode($response)]);
} else {
$telegramResponse = json_decode($response, true);
if (isset($telegramResponse['ok']) && $telegramResponse['ok'] === true) {
http_response_code(200);
echo json_encode(['ok' => true, 'message' => 'تم إرسال الرسالة بنجاح!']);
} else {
http_response_code(500);
echo json_encode(['ok' => false, 'message' => 'فشل إرسال الرسالة حسب رد التلغرام.', 'response' => $telegramResponse]);
}
}
?>