-
مشكل در ارسال ايميل
تا به حال به چنين مشكلي در ارسال ايميل برخوريد .....وب سرور نمي تواند در بخش header ايميل را replay كند و با اين خطا عجيب برخورد كردم.
کد:
Warning: mail() [function.mail]: Failed to connect to mailserver at "mailport.pha01.webhostira.com" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in D:\vhosts\******.com\httpdocs\login.php on line 44
البته قضيه جالب تر هم شد زماني كه فردي كه عضو سايت يا اشتراك خبر نامه را مي گرفت اگر وب سرور آن با من يكي بود يا ايميل مدير با خطا
کد:
Warning: mail() [function.mail]: SMTP server response: 550 5.7.1
مواجه شدم ... اول براي اين كار سراغ منابع اصلي رفتم و به يك نتايجي رسيدم اينكه بايد مشكل از تنظيمات php.ini باشد . اما من در وب سرورم به تنظيمات php.ini دسترسي ندارم . خوب در پائين تابعي كه مخصوص ثبت نام كاربران است قرار دادم .
کد:
function SignUpAdd()
{
global $url, $tpl_folder, $lang, $admin_email, $title;
global $db_users, $user_connection;
$username = secure_sql($_POST['username']);
$email = secure_sql($_POST['email']);
if (empty($username))
$dump = $lang['LNG_USER_EMPTY'];
else
{
$username = str_replace(' ', '-', $username);
$user = new Users();
$user->FindIdByName($username);
if (empty($user->Id))
{
$user->FindIdByEmail($email);
if (empty($user->Id))
{
$dump = $lang['LNG_USER_ADDED'];
$user->First_name = htmlspecialchars($_POST['first_name']);
$user->Last_name = htmlspecialchars($_POST['last_name']);
$user->Username = htmlspecialchars($_POST['username']);
$user->Password = ($_POST['password']);
$user->Email_address = htmlspecialchars($_POST['email']);
$user->Bio = htmlspecialchars($_POST['bio']);
$user->WWW = htmlspecialchars($_POST['www']);
$user->Activated = array_search('unconfirmed', $user->status);
$user->User_type = array_search('guest', $user->types);
$user->Category_id = (int) $_POST['category'];
$user->Secure();
$user->InsertToDatabase();
$activation_key = $user->GenerateActivationKey();
$headers = MailHeader($admin_email);
$subject = $title . ' ' . $lang['LNG_SUBSCRIBE_MAIL_TITLE'];
$message = $lang['LNG_SUBSCRIBE_MAIL'];
$link = "{$url}/login.php?signup=confirm&user={$user->Username}&key={$activation_key}";
$message.= "<a href=\"{$link}\">{$link}</a>";
$message = nl2br($message);
mail($user->Email_address, $subject, $message, $headers);
// end email
$dump = file_get_contents( $tpl_folder.'/success.tpl');
if ($_POST['subscribe'] && !empty($_POST['subscribe'])) {
$time = time();
$query = "INSERT INTO tblMailList (email, ip, time, confirm )
VALUES ('$user->Email_address', '{$_SERVER['REMOTE_ADDR']}', '$time', '1')";
$result = mysql_query($query) or sql_error ($query);
}
// -- set cookie for future login if enabled on form
if (isset($_POST['remember']) && !empty($_POST['remember'])){
setcookie("username", $user->Username, time()+60*60*60*24*30);}
} else {
$dump = "<div class=\"dump\">"
. $lang['LNG_EMAIL_ALREADY_EXIST'] . "</div>";
$dump .= HTML_Login_Form();
}
} else {
$dump = "<div class=\"dump\">"
. $lang['LNG_USER_ALREADY_EXIST'] . "</div>";
$dump .= HTML_Login_Form();
}
}
return $dump;
}
و خطا هم سر اين خطا بوقوع مي پيوندد.
کد:
mail($user->Email_address, $subject, $message, $headers);
-
مشكل خطا ها هر چي بود با تغيير نسخه php حل شد ولي بازهم قادر به ارسال ايميل از داخل وب سرور نيستم ؟ به نظر شما مشكل از چيست
-
پورت 25 سرور یا فایروال باز هست؟