Уведомление об ошибках (спуфинг)

В Core_Log письмо об ошибках отправляется следующей функцией:

Core_Mail::instance()
->to($email)
->from($email)
->subject($subject)
->message($message_mail)
->contentType('text/plain')
->header('X-HostCMS-Reason', 'Alert')
->header('Precedence', 'bulk')
->send();

В значениях ->to и ->from стоит один и тот же email. Из-за чего Gmail такие письма помечает как "Будьте осторожны! Возможно, это спуфинг".

Предлагаю значение ->from брать из настроек SMTP. Например, как-то так:

if (isset($config['smtp'][CURRENT_SITE]['username'])) {
$email_from = $config['smtp'][CURRENT_SITE]['username'];
} elseif (isset($config['smtp']['username'])) {
$email_from = $config['smtp']['username'];
} else {
$email_from = $email_to;
}

kovspace 10.09.2018
1
600
8

Комментарии

  • > Из-за чего Gmail такие письма помечает как "Будьте осторожны! Возможно, это спуфинг".
    Вообще Gmail должен помечать так письма, которые отправлены от имени вашего ящика, но отправлены не через SMTP Gmail. Упоминание такого сообщения в сети более не нашлось, только на этой странице.

    26.09.2018 16:28:34
    hostcms

    > "Внимание. Возможно, это письмо отправлено не тем пользователем, который был указан в качестве отправителя. Будьте осторожны при использовании ссылок в этом письме и предоставлении личной информации отправителю"

    Что соответствует правде. Ведь отправляется с ящика указанного в конфиге SMTP, а подписывается ящиком получается.

    26.09.2018 16:33:40
    kovalenko.si@list.ru
    kovalenko.si@list.ru

    Так если вы настраиваете отправку через внешний сервис для домена, то адрес для сайта и в константе нужно указывать от этого домена, а не на gmail.

    26.09.2018 16:35:24
    hostcms

    Задача отправлять с одного ящика, а получать на другие (для каждого сайта свой). Почему отправитель и получатель должны совпадать?

    26.09.2018 16:38:01
    kovspace

    Логи отправляются на адрес, указанный для сайта, если он в этот момент еще не определен, то на адрес, содержащийся в константе SUPERUSER_EMAIL. Отправителем указывается тот же адрес, ибо иного адреса не имеется.
    Для каждого сайта вы имеете возможность указать свои SMTP-настройки.
    В случае использования Gmail вышеприведенное сообщение вполне обоснованно, т.к. отправлены данные не через сервера Gmail, а через указанный вами сторонний SMTP.
    В системе логов добавлять вышеприведенную проверку не планируем, отправитель никак не должен зависеть от настроек какого-то драйвера.

    26.09.2018 16:43:14
    hostcms
  • Пропустил получение конфига:
    $config = Core::$config->get('core_mail');

    11.09.2018 19:22:23
    kovspace
  • Нужно правильно настроить почтовый сервер на сервере сайта

    11.09.2018 05:33:14
    HostDEV.pw

    В данном случае идет речь про отправку не через сервер сайта, а через внешний почтовый сервер (SMTP) – например, Яндекс Почта для Домена. Причем, когда почта отправки отличается от почты получения. Например, отправка от noreply@site.ru, а получение на private@gmail.com. Приведенный код решает такой случай, оставляя и прежний вариант.

    11.09.2018 07:42:56
    kovspace