@vasiliy-zutuf

Как переделать небольшой скрипт отправки писем?

Скрипт обратной связи. Перестал работать, хотя на win хостинге работает. Погуглил, вроде нужно чтобы через SMTP и SSL отсылалось. Помогите добавить это в имеющийся скрипт, пожалуйста.

<?php 
	   error_reporting(0);
include_once 'captcha/securimage.php';
if ($_POST['is_post'] == 1)
{
    $image = new Securimage();
    if ($image->check($_POST['code']) == false) {
		$error = 'Код не совпадает с капчёй<br>';
	}
	if (empty($_POST['name']))
	{
		$error = 'Имя не введено<br>';
	}
	if (empty($_POST['email']))
	{
		$error = 'email не указан<br>';
	}

	if (check_email_address($_POST['email']) == false)
	{
		$error = 'email некорректый <br>';
	}
	
	
	if (empty($_POST['comment']))
	{
		$error = 'Не введён текст письма<br>';
	}

	$_POST['comment'] = substr($_POST['comment'], 0, 5000); 
	$_POST['name'] = substr($_POST['name'], 0, 1000); 
	if (empty($error))
	{

		$to      = 'poluchatel@list.ru';
		$subject = 'Письмо с сайта';
     	$message = 'From: '.$_POST['name']."\n".'Email: '.$_POST['email']."\n\n".$_POST['comment'];

		$headers = "From: $_POST[email]" . "\r\n" .
		   "Reply-To: $_POST[email]" . "\r\n" .
		   'X-Mailer: PHP/' . phpversion();

		mail($to, $subject, $message, $headers);

		$error = 'Письмо отправлено<br>';

		unset($_POST['name']);
		unset($_POST['comment']);
		unset($_POST['email']);

	}

}

 function check_email_address($email) {
  // First, we check that there's one @ symbol, 
  // and that the lengths are right.
   if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
  // Email invalid because wrong number of characters 
   // in one section or wrong number of @ symbols.
    return false;
  }

  // Split it into sections to make life easier
  $email_array = explode("@", $email);
  $local_array = explode(".", $email_array[0]);
  for ($i = 0; $i < sizeof($local_array); $i++) {
    if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$",$local_array[$i])) {
      return false;
    }
  }
  // Check if domain is IP. If not, 
  // it should be valid domain name
  if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
    $domain_array = explode(".", $email_array[1]);
    if (sizeof($domain_array) < 2) {
        return false; // Not enough parts to domain
    }
    for ($i = 0; $i < sizeof($domain_array); $i++) {
      if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$",$domain_array[$i])) {
        return false;
      }
    }
  }
  return true;
}
?>
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
vmpartner
@vmpartner
In code we trust
Сделайте проверку чтобы понять уходят вообще письма или нет, дальше поймете куда копать.
if (mail($to, $subject, $message, $headers)) { }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы