Автор Тема: PHP отправка почты.  (Прочитано 434 раз)

10 Сентябрь 2017, 07:24:42
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день. Не работает стандартная отправка почты php , в том числе тестовое письмо.

Загрузил тестовый скрипт отправки
<?php
$message 
'';
if (isset(
$_POST['email']) && !empty($_POST['email'])){
  if (
mail($_POST['email'], $_POST['subject'], $_POST['body'], '')){
    
$message "Email has been sent to <b>".$_POST['email']."</b>.<br>";
  }else{
    
$message "Failed sending message to <b>".$_POST['email']."</b>.<br>";
  }
}else{
  if (isset(
$_POST['submit'])){
    
$message "No email address specified!<br>";
  }
}

if (!empty(
$message)){
  
$message .= "<br><br>n";
}
?>

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>
      Mail test
    </title>
  </head>
  <body>
    <?php echo $message?>
    <form method="post" action="">
      <table>
        <tr>
          <td>
            e-mail
          </td>
          <td>
            <input name="email" value="<?php if (isset($_POST['email'])
            && !empty(
$_POST['email'])) echo $_POST['email']; ?>
">
          </td>
        </tr>
        <tr>
          <td>
            subject
          </td>
          <td>
            <input name="subject">
          </td>
        </tr>
        <tr>
          <td>
            message
          </td>
          <td>
            <textarea name="body"></textarea>
          </td>
        </tr>
        <tr>
          <td>
            &nbsp;
          </td>
          <td>
            <input type="submit" value="send" name="submit">
          </td>
        </tr>
      </table>
    </form>
  </body>
</html>
через него все отправляется.

Хостинг так же дал скрипт для проверки
<?php
if ($_POST['submit'])
 {
  
$from    $_POST['from'];
  
$to      $_POST['to'];
  
$subject $_POST['subj'];
  
$message $_POST['msg'];
  
$headers "From: $from\r\n";
  
$headers .= "MIME-Version: 1.0\r\n";
  
$headers .= "Content-Type: text/plain; charset=windows-1251\r\n"."Content-Transfer-Encoding: 8bit\r\n";
  
mail($to"=?windows-1251?B?".base64_encode($subject)."?="$message$headers"-f ".$from);
}
?>


<form action="" method="post">
  <pre>
    From:   <input type="text" name="from">
    To:   <input type="text" name="to">
    Subj: <input type="text" name="subj">
    Msg:  <input type="text" name="msg">
    <input type="submit" value="Send mail!" name="submit">
  </pre>
</form>
но через него у меня не получилось отправить.

Prestashop 1.6.1.16  хостинг masterhost.
что не так?
10 Сентябрь 2017, 09:59:19
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Через первый письма не могут отправляются, или он дан не полным.
Вот простой пример отправки почты
<?php
// Сообщение
$message "Это тестовое сообщение.....и т.д.";
// Отправка
mail('myemail@mail.ru''Subject'$message);
?>

Проблема отправки в хостинге, на masterhost проблема с кодировкой, нужно использовать utf-8.
Чтобы с masterhost почта отправлялась, нужно установить в настройках свой smtp сервер.