Bitrix как сделать логирование писем

16.11.2021

Иногда нужно, например для отладки, сохранять копию всех отправленных сайтом писем. Встроенной функции логипрования в Битрикс нет, но можно легко ее реализовать.

Для этого, нужно в файл /bitrix/php_interface/init.php добавить:

 
<?php
function custom_mail($to, $subject, $body, $headers) { 
    $sFile = $_SERVER['DOCUMENT_ROOT'].'/logs/mail_log.log';
    
    $sRet = file_get_contents($sFile) 
        ."\n". 
        print_r(array(
            'TO' => $to, 
            'SUBJECT' => $subject, 
            'BODY' => $body, 
            'HEADERS' => $headers
            ), TRUE
        )."\n========\n")
    ;
    file_put_contents($sFile, $sRet);

    return mail($to, $subject, $body, $headers); 
}

Также стоит создать файл /logs/mail_log.log и выставить ему права на запись.


Категории: Web, Bitrix CMS
Яндекс.Метрика