تمام عصام نشر 3 أغسطس أرسل تقرير نشر 3 أغسطس (معدل) عند تسجيل مستخدم جديد في موقعي يتم ارسال بريد التحقق الى البريد غير المرغوب فيه كيف جعله يرسل بريد التحقق الى البريد الوارد <!DOCTYPE html> <html lang="ar"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>التسجيل</title> <link rel="stylesheet" href="styles.css"> </head> <body> <form action="register.php" method="POST"> <h2>التسجيل</h2> <label for="username">اسم المستخدم:</label> <input type="text" id="username" name="username" required> <label for="email">البريد الإلكتروني:</label> <input type="email" id="email" name="email" required> <label for="password">كلمة المرور:</label> <input type="password" id="password" name="password" required> <button type="submit">تسجيل</button> </form> <?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); if ($_SERVER['REQUEST_METHOD'] == 'POST') { require 'config.php'; $username = base64_encode($_POST['username']); $email = $_POST['email']; $password = base64_encode(password_hash($_POST['password'], PASSWORD_DEFAULT)); $verification_code = bin2hex(random_bytes(16)); try { // تحقق من وجود البريد الإلكتروني $stmt = $conn->prepare("SELECT * FROM users WHERE email = ?"); $stmt->execute([$email]); if ($stmt->rowCount() > 0) { echo "<p>البريد الإلكتروني موجود بالفعل. يرجى استخدام بريد إلكتروني آخر.</p>"; } else { // إدخال بيانات المستخدم الجديدة $stmt = $conn->prepare("INSERT INTO users (username, email, password, verification_code, is_verified) VALUES (?, ?, ?, ?, 0)"); $stmt->execute([$username, $email, $password, $verification_code]); // إعدادات البريد الإلكتروني $to = $email; $subject = 'التحقق من عنوان البريد الإلكتروني'; $message = "يرجى النقر على الرابط التالي للتحقق من عنوان بريدك الإلكتروني: <a href='رابط صفحة التحقق?code=$verification_code'>التحقق من البريد الإلكتروني</a>"; $headers = "From:البريد الالكتروني خاصتي \r\n"; $headers .= "Reply-To:البريد الالكتروني خاصتي\r\n"; $headers .= "Content-type: text/html\r\n"; if (mail($to, $subject, $message, $headers)) { echo "<p>تم التسجيل بنجاح! تم إرسال بريد إلكتروني للتحقق إلى عنوان بريدك الإلكتروني.</p>"; } else { echo "<p>فشل في إرسال بريد التحقق.</p>"; } } } catch (PDOException $e) { echo "<p>حدث خطأ أثناء التسجيل: " . $e->getMessage() . "</p>"; } } ?> </body> </html> تم التعديل في 3 أغسطس بواسطة تمام عصام 2 اقتباس
1 محمد عاطف17 نشر 3 أغسطس أرسل تقرير نشر 3 أغسطس هذه ليست مشكلة متعلقة بالكود لتحسين إمكانية وصول رسائل البريد الإلكتروني إلى صندوق الوارد بدلاً من البريد غير المرغوب فيه (السبام)، يمكنك اتباع الخطوات التالية: تأكد من صحة إعدادات البريد الإلكتروني: استخدم عنوان بريد إلكتروني موثوق: استخدم عنوان بريد إلكتروني خاص بك يكون احترافيا ولا تقوم بإستخدام بريد جوجل بإسم مبهم أو يدل على حساب spam. تجنب إرسال رسائل البريد الإلكتروني بشكل كثير: لا ترسل رسائل كثيرة لنفس الحساب وذلك تجنب إرسال رسائل غير مرغوب فيها حيث يمكن أن يؤدي ذلك إلى وضع عنوان بريدك في قائمة البريد المزعج. استخدم خدمة إرسال بريد إلكتروني موثوقة: اختر موفر خدمة موثوق إذا كانت الإستضافة الخاصة بك توفر لك بريد إلكتروني فيفضل إستخادمها ويجب أن تكون إستضافة جيدة وأن يكون البريد الإلكتروني يحوي ال domain الخاص بك. ويمكنك قراءة الإجابة التالية فقد تساعدك في حل المشكلة لديك : 1 اقتباس
1 ياسر مسكين نشر 3 أغسطس أرسل تقرير نشر 3 أغسطس لتفادي هذا الأمر يجب استخدام خادم بريد موثوق به بحيث يكون معدّا بشكل صحيح وأفضل الطرق من خلال إعداد سجلات SPF و DKIM و DMARC ففائدتها هي كالتالي: SPF: يساعد في التحقق من أن الخادم المُرسل مصرح له بإرسال البريد. DKIM: يضيف توقيعا رقميا للتحقق من صحة الرسائل. DMARC: يحدد كيفية التعامل مع الرسائل التي تفشل في اختبارات SPF أو DKIM. فتكوين سجلات DNS بشكل صحيح ضروري لمصادقة بريدك الإلكتروني يمكنك التسجيل في SPF (Sender Policy Framework) وDKIM (DomainKeys Identified Mail) وDMARC (Domain-based Message Authentication, Reporting, and Conformance) كي تساعد في تحسين مصداقية بريدك الإلكتروني. كما يجب أن تتجنب العناوين النصية العشوائية، وأن تقلل من الروابط. كما أنصح باختبار البريد الإلكتروني يمكنك استخدام أدوات مثل Mail Tester لتقييم رسائل البريد الإلكتروني الخاصة بك ومعرفة الأسباب التي قد تؤدي إلى تصنيفها كبريد غير مرغوب فيه. 1 اقتباس
السؤال
تمام عصام
عند تسجيل مستخدم جديد في موقعي يتم ارسال بريد التحقق الى البريد غير المرغوب فيه كيف جعله يرسل بريد التحقق الى البريد الوارد
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>التسجيل</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<form action="register.php" method="POST">
<h2>التسجيل</h2>
<label for="username">اسم المستخدم:</label>
<input type="text" id="username" name="username" required>
<label for="email">البريد الإلكتروني:</label>
<input type="email" id="email" name="email" required>
<label for="password">كلمة المرور:</label>
<input type="password" id="password" name="password" required>
<button type="submit">تسجيل</button>
</form>
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
require 'config.php';
$username = base64_encode($_POST['username']);
$email = $_POST['email'];
$password = base64_encode(password_hash($_POST['password'], PASSWORD_DEFAULT));
$verification_code = bin2hex(random_bytes(16));
try {
// تحقق من وجود البريد الإلكتروني
$stmt = $conn->prepare("SELECT * FROM users WHERE email = ?");
$stmt->execute([$email]);
if ($stmt->rowCount() > 0) {
echo "<p>البريد الإلكتروني موجود بالفعل. يرجى استخدام بريد إلكتروني آخر.</p>";
} else {
// إدخال بيانات المستخدم الجديدة
$stmt = $conn->prepare("INSERT INTO users (username, email, password, verification_code, is_verified) VALUES (?, ?, ?, ?, 0)");
$stmt->execute([$username, $email, $password, $verification_code]);
// إعدادات البريد الإلكتروني
$to = $email;
$subject = 'التحقق من عنوان البريد الإلكتروني';
$message = "يرجى النقر على الرابط التالي للتحقق من عنوان بريدك الإلكتروني:
<a href='رابط صفحة التحقق?code=$verification_code'>التحقق من البريد الإلكتروني</a>";
$headers = "From:البريد الالكتروني خاصتي \r\n";
$headers .= "Reply-To:البريد الالكتروني خاصتي\r\n";
$headers .= "Content-type: text/html\r\n";
if (mail($to, $subject, $message, $headers)) {
تم التعديل في بواسطة تمام عصامecho "<p>تم التسجيل بنجاح! تم إرسال بريد إلكتروني للتحقق إلى عنوان بريدك الإلكتروني.</p>";
} else {
echo "<p>فشل في إرسال بريد التحقق.</p>";
}
}
} catch (PDOException $e) {
echo "<p>حدث خطأ أثناء التسجيل: " . $e->getMessage() . "</p>";
}
}
?>
</body>
</html>
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.