خیلی وقتها میبینیم هاست بدرستی کار میکنه و هیچ مشکلی نیست ، بعد یه روز میبینی از طرف دیتا سنتر برای سرور اخطار اومده که در صورت تکرار ارسال اسپم سرور قطع میشه در پاره ای مواقع هم بدون اخطار همه چی به فنا میره فقط بخاطر اینکه یه هکر از خدا بیخبر و یا یه مشتری نا آگاه شروع به ارسال اسپم میکنن و کل سرور رو به مخاطره میاندازن.
برای حل این مشکل من بارها توی انجمن Cpanel به بخش پشتبانی و افرادی که در اون انجمن فعال هستن این موضوع رو مطرح کردم اما هیچ وقت جواب قاطعی که کاملا جلوی این مساله رو بگیره دریافت نکردم .
این هم نمونه های جواب دادن ها اونها : Protect CPanel From Outgong Spammer (Fake Sender) - cPanel Forums و php mail() sending emails not related with domain - cPanel Forums
و این هم بخش Document و ارائه راه حل این مساله که توسط تیم Cpanel پیشنهاد شده : How to: Prevent Email Abuse
و اما با وجود تمام راه حل هایی که گفته شد باز اسپمر میتونه ایمیل ارسال کنه .
من تنها راه حل قاطعی پیدا کردم این بود که توی PHP Configation بیام تابع mail رو غیر فعال کنم یعنی Disable_function = mail ، همانطور که میدونید با این روش هاستهایی که خبرنامه و یا فرم ثبت نام دارن و همچنین سیستمهایی مدیریتی مثل WHMCS دیگه نمیتونن ایمیل ارسال کنن و عملاً خشک و تر با هم میسوزن.
آیا همکارانی که توی این زمینه تخصص کافی دارن تا حالا تونستن این مشکل رو حل کنن ؟
من یه نمونه کد که میتونه از طریق PHP ایمیل به صورت ناشناس ارسال کنه اینجا میذارم که ببینیم آیا هاست شما تا حالا تونسته جلوی این نوع اسکریپتها رو بگیره یا نه :
کد:
<h2>Feedback Form</h2>
<?php
// display form if user has not clicked submit
if (!isset($_POST["submit"])) {
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
From: <input type="text" name="from"><br>
Subject: <input type="text" name="subject"><br>
Message: <textarea rows="10" cols="40" name="message"></textarea><br>
<input type="submit" name="submit" value="Submit Feedback">
</form>
<?php
} else { // the user has submitted the form
// Check if the "from" input field is filled out
if (isset($_POST["from"])) {
$from = $_POST["from"]; // sender
$subject = $_POST["subject"];
$message = $_POST["message"];
// message lines should not exceed 70 characters (PHP rule), so wrap it
$message = wordwrap($message, 70);
// send mail
mail("me@domain.com",$subject,$message,"From: $from\n");
echo "HA HA I Send SPAM";
}
}
?>
بجای me@domain.com ایمیل شخصی خودتون رو بنویسید.
برای تست کد بالا ، یه فایل PHP با هر نامی توی هاستتون ایجاد کنید و از طریق Browser اونو صدا بزنید.