Здравствуйте, есть функция:
function sendMailAboutOrder($email){
$to = $email;
$subject = "Тема сообщения";
$message = '
<body>
<p>Ваш логин: '.$to.'</p>
</body>';
$headers = "Content-type: text/html; charset=utf-8 \r\n";
mail($to, $subject, $message, $headers);
}
Вызывается она из экшена:
function saveorderAction()
{
$cart = isset($_SESSION['saleCart']) ? $_SESSION['saleCart'] : null;
if (!$cart) {
$resData['success'] = 0;
$resData['message'] = 'Нет товаров для заказа';
echo json_encode($resData);
return;
}
$second_name = isset($_POST['second_name']) ? $_POST['second_name'] : '';
$patronymic = isset($_POST['patronymic']) ? $_POST['patronymic'] : '';
$index = isset($_POST['index']) ? $_POST['index'] : '';
$name = isset($_POST['name']) ? $_POST['name'] : '';
$phone = isset($_POST['phone']) ? $_POST['phone'] : '';
$adress = isset($_POST['adress']) ? $_POST['adress'] : '';
//создаем новый заказ и получаем его ID
$orderId = makeNewOrder($name, $phone, $adress, $second_name, $patronymic, $index);
if (!$orderId) {
$resData['success'] = 0;
$resData['message'] = 'Ошибка создания заказа';
echo json_encode($resData);
return;
}
// сохраняем товары для созданного заказа
$res = setPurchaseForOrder($orderId, $cart);
$email = isset($_SESSION['user']['email']) ? $_SESSION['user']['email'] : 0;
sendMailAboutOrder($email);
// если успешно, то формируем ответ, удаляем данные корзины
if ($res) {
$resData['success'] = 1;
$resData['message'] = 'Заказ сохранен';
unset($_SESSION['$saleCart']);
unset($_SESSION['cart']);
} else {
$resData['success'] = 0;
$resData['message'] = 'Ошибка внесения данных для заказа № ' . $orderId;
}
echo json_encode($resData);
}
Тестируется на локальном сервере, функция mail работает(проверено на подобных отправках писем в других вызовах) вот она:
<?php
//папка в которую будем складывать почту
define('DIR','c:/xampp/tmp/mails/');
//получаем из потока тело письма
$stream = '';
$fp = fopen('php://stdin','r');
while($t=fread($fp,2048))
{
if( $t===chr(0) )
break;
$stream .= $t;
}
fclose($fp);
//Сохраняем в файл
$fp = fopen(mkname(),'w');
fwrite($fp, $stream);
fclose($fp);
//Функция присвоения имени файлу
function mkname($i=0)
{
$fn = DIR.date('Y-m-d_H-i-s_').$i.'.eml';
if ( file_exists($fn) )
return mkname(++$i);
else return $fn;
}
Ошибок в логах нет. В PHPStorm при просмотре работы кода(Debug(зеленый жучок в панели инструментов)), он заходит в функцию sendMailAboutOrder, и на последней строке выходит из проверки, т.е. непосредственно когда вызывается: mail($to, $subject, $message, $headers);
, дальше уже не проверяет.
Подскажите почему письма не приходят? ошибок шторм не подчеркивает, все норм вроде...
Чтобы письма отправлялись из функции mail - необходимо настраивать почтовый сервер.
Чтобы его не настраивать и отправлять - можно использовать SMTP. Скачали библиотеку, зарегистрировали аккаунт на гугле или яндексе, или в другом месте - и установили настройки в библиотеку SMTP.
Класс для отправки почты SMTP с примером
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Когда я вызываю ob_get_status(), я получаю массив, в котором помимо прочего присутствуют строка buffer_size и chunk_size
Есть сайт http://siteru
Привет коллеги, подскажите чем можетеНе могу сообразить как мне удалить из директории файлы, через кнопку на веб странице
Имеется конструкция switch-case со множеством вариантовКаким образом создать компонентно-ориентированный и легко масштабируемый архитектурный...