Порылся в старых проектах, нашёл вот это:
<?php
session_start();
function logWrite($data = "\n")
{
file_put_contents("sendmail.log", strftime('%Y-%m-%d %H:%M:%S ') . $data . "\n", FILE_APPEND);
}
function logDump($var, $name = '')
{
if (!empty($name)) $name = "$name: ";
logWrite($name . var_export($var, true));
}
logWrite("\n===================\n");
logDump($_SERVER, 'SERVER');
logDump($_POST, 'POST');
if (stripos($_SERVER['HTTP_REFERER'], $_SERVER['SERVER_NAME']) === false ) {
logWrite('invalid HTTP_REFERER');
exit;
}
/** защита от CSRF-атак, для вас наверное не актуально
* if (!isset($_SESSION['token']) || !isset($_SERVER['HTTP_X_CSRF_TOKEN'])) {
* logWrite('no token');
* exit;
* }
* if ($_SESSION['token'] !== $_SERVER['HTTP_X_CSRF_TOKEN']) {
* logWrite('invalid token');
* exit;
* }
*/
/** здесь была валидация полей - её тоже вырезал */
$eol = "\r\f";
$message = 'Телефон: ' . $_POST['user_phone'] . $eol;
$message .= 'email: ' . $_POST['form_checkbox_agree[]'] . $eol;
if (mail('aaaa@bbb.cc, 'order #...', $message)) {
$result = [
'success' => true,
'errors' => [],
];
} else {
$result = [
'success' => false,
'errors' => [
'internal' => 'Internal error'
]
];
}
logDump($result, 'result');
$json = json_encode($result);
if ($json === false) {
logWrite('json error');
exit;
}
echo $json;
Вызывайте через ajax post-ом. Скрипт сохраняет лог в sendmail.log.