Отправка писем на mail.ru

  • Автор темы Nemiroff
  • Дата начала
Nemiroff
Участник
Сообщения
27
Реакции
0
Привет всем.
Помогите.
Не отправляются письма на Mail.ru.
На все остальные почты письма доставляются. Но на маил.ру письма не доходят.
Может кто сталкивался
 
Nemiroff
Участник
Сообщения
27
Реакции
0
VladL написал(а):
У маил защита от спама хорошая ) Это вечная проблема хотя решима смотря для чего
Для отправки платежного пароля если забыл, и письма о регистрации где указаны все данные
 
Nemiroff
Участник
Сообщения
27
Реакции
0
а как настроить?
 
MuhaNN
Местный
Сообщения
40
Реакции
3
<?php
class isender{

var $Hosts = "";

/*======================================================================*\
Function: __construct
Descriiption: Конструктор класса
\*======================================================================*/
function __construct(){

$this->Hosts = str_replace("www.","",$_SERVER['HTTP_HOST']);

}

/*======================================================================*\
Function: SendRegKey
Descriiption: Отправляет регистрационный ключ
\*======================================================================*/
function SendRegKey($mail, $key){

$text = "На ваш Email была запрошена ссылка для регистрации в системе \"".$this->Hosts."\"<BR />";
$text.= "Если вы не запрашивали ссылку, просто проигнорируйте это сообщение. <BR /><BR />";
$text.= "Ссылка для регистрации: <a href='http://".$this->Hosts."/signup/key/{$key}'>";
$text.= "http://".$this->Hosts."/signup/key/{$key}</a>";
$subject = "Регистрация в системе \"".$this->Hosts."\"";

return $this->SendMail($mail, $subject, $text);

}

/*======================================================================*\
Function: RecoveryPassword
Descriiption: Восстановление пароля
\*======================================================================*/
function RecoveryPassword($user, $pass, $mail){

$text.= "Данные для входа в личный кабинет пользователя: <BR />";
$text.= "<b>Логин:</b> {$user}<BR />";
$text.= "<b>Пароль:</b> {$pass}<BR />";
$text.= "Ссылка для входа в кабинет: <a href='http://".$this->Hosts."/index.php'>http://".$this->Hosts."/index.php</a>";
$subject = "Восстановление забытого пароля в системе \"".$this->Hosts."\"";
return $this->SendMail($mail, $subject, $text);

}

/*======================================================================*\
Function: SendAfterReg
Descriiption: Отправляет данные после регистрации
\*======================================================================*/
function SendAfterReg($user, $mail, $pass){

$text = "Благодарим вас за регистрацию в системе в системе \"".$this->Hosts."\"<BR />";
$text.= "Ваши данные для входа в личный кабинет пользователя: <BR />";
$text.= "<b>Логин:</b> {$user}<BR />";
$text.= "<b>Пароль:</b> {$pass}<BR />";
$text.= "Ссылка для входа в кабинет: <a href='http://".$this->Hosts."/index.php'>http://".$this->Hosts."/index.php</a>";
$subject = "Завершение регистрации в системе \"".$this->Hosts."\"";

return $this->SendMail($mail, $subject, $text);

}

/*======================================================================*\
Function: SetNewPassword
Descriiption: Отправляет данные после смены пароля
\*======================================================================*/
function SetNewPassword($user, $pass, $mail){

$text = "В настройках вашего аккаунта был изменен пароль<BR />";
$text.= "Ваши новые данные для входа в личный кабинет пользователя: <BR />";
$text.= "<b>Логин:</b> {$user}<BR />";
$text.= "<b>Новый пароль:</b> {$pass}<BR />";
$text.= "";
$subject = "Смена пароля в системе \"".$this->Hosts."\"";

return $this->SendMail($mail, $subject, $text);

}


/*======================================================================*\
Function: Headers
Descriiption: Создание заголовков письма
\*======================================================================*/
function Headers(){

$headers = "MIME-Version: 1.0\r\n";
$headers.= "Content-type: text/html; charset=Windows-1251\r\n";
$headers.= "Date: ".date("m.d.Y (H:i:s)",time())."\r\n";
$headers.= "From: support@".$this->Hosts." \r\n";

return $headers;

}

/*======================================================================*\
Function: SendMail
Descriiption: Отправитель
\*======================================================================*/
function SendMail($recipient, $subject, $message){

$message .= "<BR />----------------------------------------------------
<BR />Сообщение было выслано автоматически, пожалуйста, не отвечайте на него!";
return (mail($recipient, $subject, $message, $this->Headers())) ? true : false;

}



}
?>
 
MuhaNN
Местный
Сообщения
40
Реакции
3
Сейчас воспользовался формой восстановления пароля, письмо на mail.ru пришло.
 
Nemiroff
Участник
Сообщения
27
Реакции
0
MuhaNN написал(а):
Сейчас воспользовался формой восстановления пароля, письмо на mail.ru пришло.
Неа. Не приходит. На все остальные приходит, на маил не хочет
 
MuhaNN
Местный
Сообщения
40
Реакции
3
И в спаме нет?
 
MuhaNN
Местный
Сообщения
40
Реакции
3
<?PHP
$_OPTIMIZATION["title"] = "Регистрация";
$_OPTIMIZATION["description"] = "Регистрация пользователя в системе";
$_OPTIMIZATION["keywords"] = "Регистрация нового участника в системе";

if(isset($_SESSION["user_id"])){ Header("Location: /account"); return; }


if(!isset($_GET["key"])){


?>
<div class="s-bk-lf">
<div class="acc-title">Регистрация</div>
</div>
<div class="silver-bk"><div class="clr"></div>

<p>Укажите Ваш Email, на него будет выслана ссылка для регистрации.</p>


<?PHP

if(isset($_POST["email"])){

if(isset($_SESSION["captcha"]) AND strtolower($_SESSION["captcha"]) == strtolower($_POST["captcha"])){

unset($_SESSION["captcha"]);

$email = $func->IsMail($_POST["email"]);
$referer_id = (isset($_COOKIE["i"]) AND intval($_COOKIE["i"]) > 0 AND intval($_COOKIE["i"]) < 1000000) ? intval($_COOKIE["i"]) : 1;
$ttime = time();
$tidex = time() - 60*15;

if($email !== false){

$db->Query("DELETE FROM db_regkey WHERE date_del < '".$ttime."' OR (date_add < '".$tidex."' AND email = '$email')");
$db->Query("SELECT COUNT(*) FROM db_regkey WHERE email = '$email'");

if($db->FetchRow() == 0){

$db->Query("SELECT COUNT(*) FROM db_users_a WHERE email = '$email'");

if($db->FetchRow() == 0){


# Узнаем реферера
if($referer_id != 1){

$db->Query("SELECT user FROM db_users_a WHERE id = '$referer_id' LIMIT 1");

if($db->NumRows() > 0){

$referer_name = $db->FetchRow();

}else{ $referer_id = 4064; $referer_name = "Dagon"; }

}else{ $referer_id = 4064; $referer_name = "Dagon"; }


# Заносим запись в reg_key
$td = $ttime + 60*60;
$db->Query("INSERT INTO db_regkey (email, referer_id, referer_name, date_add, date_del)
VALUES ('$email','$referer_id','$referer_name','$ttime','$td')");

$lid = $db->LastInsert();
$reg_key = $lid."-".md5($lid."_rfs_".$lid);

# Отправляем на почту
$sender = new isender;
$sender -> SendRegKey($email, $reg_key);

echo "<center><font color = 'green'><b>На указанный Вами Email была отправлена ссылка для регистрации!</b></font></center>";
?></div>
<div class="clr"></div>
<?PHP
return;

}else echo "<center><font color = 'red'><b>Указанный Email уже зарегистрирован в системе!</b></font></center>";

}else echo "<center><font color = 'red'><b>За последние 15 минут Вы уже запрашивали ссылку для регистрации!</b></font></center>";

}else echo "<center><font color = 'red'><b>Email имеет неверный формат!</b></font></center>";

}else echo "<center><font color = 'red'><b>Символы с картинки введены неверно!</b></font></center>";

}
?>
<BR />
<form action="" method="post">
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" width="250">Email (На него вышлем ссылку):</td>
<td align="left" width="250"><input name="email" type="text" size="25" maxlength="50" value="<?=(isset($_POST["email"])) ? htmlspecialchars($_POST["email"]) : false; ?>"/></td>
</tr>
<tr>
<td align="left" width="250" style="padding-top:20px;">
<a href="https://servahoc.ru/redirect.php?url=#" onclick="ResetCaptcha(this);"><img src="/captcha.php?rnd=<?=rand(1,10000); ?>" border="0" style="margin:0;"/></a>
</td>
<td align="left" width="250" style="padding-top:20px;">Введите символы с картинки:<input name="captcha" type="text" size="25" maxlength="50" /></td>
</tr>
<tr>
<td colspan="2" align="center"><BR /><input type="submit" value="Выслать ссылку" class="button_0" style="height: 30px;"></td>
</tr>
</table>

</form>
<BR />
</div>
<div class="clr"></div>
<?PHP

return;
}

# Регистрация
$_GET["key"] = (string) $_GET["key"];

$token_data = explode('-', $_GET["key"]);

$token_id = intval($token_data[0]);
$token_hash = (string) $token_data[1];

if(strlen($token_hash) != 32){ echo "<center><b><font color = 'red'>Ссылка для регистрации не действительна!</font></b></center><BR />"; return; }

$tkey = md5($token_id."_rfs_".$token_id);
if($token_hash != $tkey){ echo "<center><b><font color = 'red'>Ссылка для регистрации не действительна!</font></b></center><BR />"; return; }

$db->Query("SELECT * FROM db_regkey WHERE id = '$token_id' LIMIT 1");
if($db->NumRows() != 1){ echo "<center><b><font color = 'red'>Ссылка для регистрации не действительна!</font></b></center><BR />"; return; }

$data_t = $db->FetchArray();
$db->FreeMemory();

?>
<div class="s-bk-lf">
<div class="acc-title">Регистрация</div>
</div>
<div class="silver-bk"><div class="clr"></div>
<?PHP

# Регистрация
if(isset($_POST["login"])){

$login = $func->IsLogin($_POST["login"]);
$pass1 = $func->IsPassword($_POST["pass"]);
$pass = $func->md5Password($pass1);
$repass = $func->md5Password($_POST["repass"]);
$rules = isset($_POST["rules"]) ? true : false;
$time = time();
$ip = $func->UserIP;

$referer_id = $data_t["referer_id"];
$referer_name = $data_t["referer_name"];
$email = $data_t["email"];

if($rules){

if($login !== false){

if($pass !== false){

if($pass == $repass){

$db->Query("SELECT COUNT(*) FROM db_users_a WHERE user = '$login'");
if($db->FetchRow() == 0){

# Регаем пользователя
$db->Query("INSERT INTO db_users_a (user, email, pass, referer, referer_id, date_reg, ip)
VALUES ('$login','{$email}','$pass','$referer_name','$referer_id','$time',INET_ATON('$ip'))");

$lid = $db->LastInsert();

$db->Query("INSERT INTO db_users_b (id, user, a_t, last_sbor) VALUES ('$lid','$login','1', '".time()."')");

# Вставляем статистику

$db->Query("UPDATE db_stats SET all_users = all_users +1 WHERE id = '1'");



# Удаляем рег кей
$db->Query("DELETE FROM db_regkey WHERE email = '$email' OR id = '$token_id'");

echo "<center><b><font color = 'green'>Вы успешно зарегистрировались. Используйте форму слева для входа в аккаунт!</font></b></center><BR />";
?></div>
<div class="clr"></div>
<?PHP
return;
}else echo "<center><b><font color = 'red'>Указанный логин уже используется!</font></b></center><BR />";

}else echo "<center><b><font color = 'red'>Пароль и повтор пароля не совпадают!</font></b></center><BR />";

}else echo "<center><b><font color = 'red'>Пароль заполнен неверно!</font></b></center><BR />";

}else echo "<center><b><font color = 'red'>Логин заполнен неверно!</font></b></center><BR />";

}else echo "<center><b><font color = 'red'>Вы не подтвердили правила!</font></b></center><BR />";

}


?>


<BR />
<form action="" method="post">
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" style="padding:3px;">Ваш псевдоним: <font color="#FF0000">*</font></td>
<td align="left" style="padding:3px;"><input name="login" type="text" size="25" maxlength="10" value="<?=(isset($_POST["login"])) ? htmlspecialchars($_POST["login"]) : false; ?>"/></td>
</tr>
<tr>
<td colspan="2" align="left" style="padding:3px;">Поле псевдоним должно иметь от 4 до 10 символов (только англ. символы).</td>
</tr>

<tr>
<td colspan="2" align="left">&nbsp;</td>
</tr>
<tr>
<td align="left" style="padding:3px;">Пароль: <font color="#FF0000">*</font></td>
<td align="left" style="padding:3px;"><input name="pass" type="password" size="25" maxlength="20" /></td>
</tr>
<tr>
<td colspan="2" align="left" style="padding:3px;">Поле Пароль должен быть сложным (например: n4fo6m0x).</td>
</tr>
<tr>
<td align="left" style="padding:3px;">Пароль еще раз: <font color="#FF0000">*</font></td>
<td align="left" style="padding:3px;"><input name="repass" type="password" size="25" maxlength="20" /></td>
</tr>
<tr>
<td colspan="2" align="left" style="padding:3px;">Пароли должны совпадать.</td>
</tr>
<tr>
<td align="left" style="padding:3px;">Вас пригласил:</td>
<td align="left" style="padding:3px;">[ID: <?=$data_t["referer_id"];?>] <?=$data_t["referer_name"];?></td>
</tr>
<tr>
<td colspan="2" align="left">&nbsp;</td>
</tr>
<tr>
<td colspan="2" align="left" style="padding:3px;">
С <a href="https://servahoc.ru/redirect.php?url=/rules" target="_blank" class="stn">правилами</a> проекта ознакомлен(а) и принимаю: <input name="rules" type="checkbox" /></td>
</tr>
<tr>
<td colspan="2" align="left">&nbsp;</td>
</tr>
<tr>
<td colspan="2" align="center" style="padding:3px;"><input name="registr" type="submit" value="Зарегистрироваться" style="height: 30px;"></td>
</tr>
</table>
</form>

</div>
<div class="clr"></div>
<?PHP
$_OPTIMIZATION["title"] = "Восстановление пароля";
$_OPTIMIZATION["description"] = "Восстановление забытого пароля";
$_OPTIMIZATION["keywords"] = "Восстановление забытого пароля";

if(isset($_SESSION["user_id"])){ Header("Location: /account"); return; }

?>
<div class="s-bk-lf">
<div class="acc-title">Восстановление пароля</div>
</div>
<div class="silver-bk"><div class="clr"></div>
<?PHP

if(isset($_POST["email"])){

if(isset($_SESSION["captcha"]) AND strtolower($_SESSION["captcha"]) == strtolower($_POST["captcha"])){

unset($_SESSION["captcha"]);

$email = $func->IsMail($_POST["email"]);
$time = time();
$tdel = $time + 60*15;

if($email !== false){


$chars="qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP";



$max=10;
$size=StrLen($chars)-1;



$password=null;



while($max--) {
$password.=$chars[rand(0,$size)]; }

$newmdPassword = $func->md5Password($password);

$db->Query("UPDATE db_users_a SET pass = '$newmdPassword' WHERE email = '$email' ");

$db->Query("DELETE FROM db_recovery WHERE date_del < '$time'");
$db->Query("SELECT COUNT(*) FROM db_recovery WHERE ip = INET_ATON('".$func->UserIP."') OR email = '$email'");
if($db->FetchRow() == 0){

$db->Query("SELECT id, user, email, pass FROM db_users_a WHERE email = '$email'");
if($db->NumRows() == 1){
$db_q = $db->FetchArray();


$db->Query("INSERT INTO db_recovery (email, ip, date_add, date_del) VALUES ('$email',INET_ATON('".$func->UserIP."'),'$time','$tdel')");


$sender = new isender;
$sender -> RecoveryPassword($db_q["email"], $password, $db_q["email"]);

echo "<center><font color = 'green'><b>Данные для входа отправлены на Email!</b></font></center>";
header("Refresh: 3; index.php");
exit();

?>
</div>
<div class="clr"></div>
<?PHP
return;

}else echo "<center><font color = 'red'><b>Пользователь с таким Email не зарегистрирован!</b></font></center>";

}else echo "<center><font color = 'red'><b>На Ваш Email уже был отправлен пароль за последние 15 минут!</b></font></center>";

}else echo "<center><font color = 'red'><b>Email указан неверно!</b></font></center>";

}else echo "<center><font color = 'red'><b>Символы с картинки введены неверно!</b></font></center>";

}

?>

<BR />

<form action="" method="post">

<table width="550" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" width="250">Email (Будет выслан новый пароль):</td>
<td align="left" width="250"><input name="email" type="text" size="25" maxlength="50" value="<?=(isset($_POST["email"])) ? htmlspecialchars($_POST["email"]) : false; ?>"/></td>
</tr>

<tr>
<td align="left" width="250" style="padding-top:20px;">
<a href="https://servahoc.ru/redirect.php?url=#" onclick="ResetCaptcha(this);"><img src="/captcha.php?rnd=<?=rand(1,10000); ?>" border="0" style="margin:0;"/></a>
</td>
<td align="left" width="250" style="padding-top:20px;">Введите символы с картинки:<input name="captcha" type="text" size="25" maxlength="50" /></td>
</tr>

<tr>
<td colspan="2" align="center"><BR /><input type="submit" value="Восстановить" style="height: 30px;"></td>
</tr>
</table>

</form>
</div>
<div class="clr"></div>
 
Nemiroff
Участник
Сообщения
27
Реакции
0
  • #10
у меня без подтверждения.
вот как у меня в isender


Код:
function Plat_Pass($pass, $mail){
   
        $text = "<b>Вами была оформлена заявка на восстановление платёжного пароля</b><BR />";
        $text.= "<b>Ваш платёжный пароль:</b> <font color='green' size='3'><b>{$pass}</b></font><BR />";
        $text.= "<b>Никому его не сообщайте!<BR />";
        $text.= "<b>Мы беспокоимся за вашу безопасность!<BR />";
        $text.= "Ссылка для входа в кабинет: <a href='http://".$this->Hosts."/login'>http://".$this->Hosts."/login</a>";
        $subject = "Платёжный пароль \"".$this->Hosts."\"";
       
        return $this->SendMail($mail, $subject, $text);
       
    }
 
MuhaNN
Местный
Сообщения
40
Реакции
3
  • #11
Хз, платежного пароля нет, это скинул, что стоит, - пароль на майлру пришел.
 
Nemiroff
Участник
Сообщения
27
Реакции
0
  • #12
может от хоста зависит?
 
Nemiroff
Участник
Сообщения
27
Реакции
0
  • #14
Дело не в платежном пароле!
Платежный пароль я сам писал.
Даже данные при регистрации не отправляются на маил.ру.
Вот только туда письма не доходят. Не зависимо от содержания письма
 
MuhaNN
Местный
Сообщения
40
Реакции
3
  • #15
От хоста - хз, зависит, или нет - перегонял ферму 2 раза, всегда на мэйл приходили, а другие хз))) ток мэйл и пользуюсь)))
 
MuhaNN
Местный
Сообщения
40
Реакции
3
  • #16
Напиши wh1skas, он тебе поможет ^_^
 
APTEMOH
Участник
Сообщения
889
Реакции
256
Telegram
APTEMOH
  • #17
1) Зависит от хостинга.
2) В бане или не в бане почта/IP/сервер.

А так курите SMTP сервер. Себе сделал и горя не знаю.
 
Сверху