Сначала делаем поле необязательным в файле Kernel/Config.pm:
Ищем строку
Код: Выделить всё
[ 'UserEmail', 'Email', 'email', 1, 1, 'var', '', 0 ],
Код: Выделить всё
[ 'UserEmail', 'Email', 'email', 1, 0, 'var', '', 0 ],
У настройки CheckMXRecord ставим значение "нет".
Далее копируем файл Kernel/Modules/AdminCustomerUser.pm в Custom/Kernel/Modules/ и правим его:
Ищем блок
Код: Выделить всё
if (
$GetParam{UserEmail}
&& !$CheckItemObject->CheckEmail( Address => $GetParam{UserEmail} )
)
{
$Errors{UserEmailInvalid} = 'ServerError';
$Errors{ErrorType} = $CheckItemObject->CheckErrorType() . 'ServerErrorMsg';
}
Далее копируем файл Kernel/System/CustomerUser/DB.pm в Custom/Kernel/System/CustomerUser/. Правим его:
Находим комментарий
Код: Выделить всё
# check email address if already exists
Код: Выделить всё
my ( $Sec, $Min, $Hour, $Day, $Month, $Year ) = $Self->{TimeObject}->SystemTime2Date(
SystemTime => $Self->{TimeObject}->SystemTime(),
);
my $randNum = "$Year$Month$Day$Hour$Min" . int( rand(99) );
if ( !$Param{UserEmail} || $Param{UserEmail} eq '' || $Param{UserEmail} eq ' ' || $Param{UserEmail} eq '-'){
$Param{UserEmail} = $randNum . '@example.ru';
}
Таким образом, если Вы при создании клиента оставите поле Email пустым, или впишите пробел, или впишите '-', то пользователь создастся с email типа yyyymmddrr@example.ru, где yyyy - текущий год, mm - текущий месяц, dd - текущая дата, rr - рандомное число.
Готово!