В этом посте я расскажу как сделать так, чтоб в vTiger 6 были разные настройки SMTP для всех пользователей.
Важно: уже в настройках должен быть прописан и работать какой-нибудь действующий SMTP сервер.
Предполагается, что все используют один SMTP сервер, но под разными аккаунтами.
- Добавляем новое поле в таблицу пользователя.
- Добавляем новое поле в настройки.
INSERT INTO `vtiger_field` (`tabid`, `fieldid`, `columnname`, `tablename`, `generatedtype`, `uitype`, `fieldname`, `fieldlabel`, `readonly`, `presence`, `defaultvalue`, `maximumlength`, `sequence`, `block`, `displaytype`, `typeofdata`, `quickcreate`, `quickcreatesequence`, `info_type`, `masseditable`, `helpinfo`, `summaryfield`) VALUES (29, 884, 'smtppass', 'vtiger_users', 1, '55', 'smtppass', 'SMTP Password', 1, 2, 'password', 100, 32, 77, 1, 'V~O', 1, NULL, 'BAS', 1, NULL, 0);
где вместо 884 ставим правильный ID поля (сортируем все поля по fieldid и ставим на один больше) - В таблице vtiger_modulerel ставим цифру такую же как максимальный fieldid (в нашем случае это 884)
- Открываем Modules/Emails/models/Record.php. Ищем функцию send() и дополняем:
в начале функции ставим:
global $current_user;
Далее в той же функции ищем:
if($server_username != '') {
$server_username = $idn->encode($server_username);
$mailer->Username = $server_username;
}
Закомментируем его. И рядом ставим:
// JACK Begin
$newlogin = str_replace("@gmail.com", "", $current_user->email1);
$mailer->Username = $newlogin;
$mailer->Password = $current_user->smtppass;
// JACK End
ALTER TABLE `vtiger_users` ADD `smtppass` TEXT NULL DEFAULT NULL COMMENT 'SMTP Password' AFTER `is_owner`;