Roundcube настроить переменную SMTP_USER

Я установил веб-почту Roundcube на свой сервер, но хочу немного настроить ее, но.

В файле config/defaults.inc.php есть переменная $config['smtp_user'] = '%u';

Но я хотел бы изменить это значение на основе значения $_SESSION["username"];, однако сеанс не запускается в файле, а находится только в файле index.php.

Я попытался установить $config['smtp_user'] в файле index.php, что нормально, но не работает при отправке почты.

Есть ли способ изменить это значение в моем файле config/defaults.inc.php или config/config.inc.php и использовать значение из $_SESSION["username"]


person charlie    schedule 27.04.2020    source источник
comment
Можете ли вы разместить свой код на github или где-нибудь, чтобы мы могли его увидеть?   -  person user3585659    schedule 06.05.2020
comment
@user3585659 user3585659 я пытаюсь изменить значение $config['smtp_user'] с помощью переменной сеанса, но сеанс не запускается в файле defaults.inc.php, который содержит $config['smtp_user']   -  person charlie    schedule 06.05.2020
comment
Почему бы сначала не установить значение по умолчанию, а затем при запуске сеанса изменить значение. Что-то вроде $config['smtp_user'] = $_SESSION['nameOfSession'] ? $_SESSION['nameOfSession'] : $yourDefaultValue   -  person user3585659    schedule 07.05.2020
comment
Я попробовал это вчера на самом деле в файле index.php, но, похоже, он не получил правильное значение. Я не уверен, что переменные $config подбираются где-то еще.   -  person charlie    schedule 07.05.2020


Ответы (1)


Вы можете запустить сеанс в режиме только для чтения, а затем получить имя пользователя. С этим решением сеанс будет запущен в read-only mode, а затем сразу же закрыт после заполнения $_SESSION.

Добавьте это в свой config.inc.php:

session_start(['read_and_close' => true]);
$config['smtp_user'] = $_SESSION['username'] ?? '%u';

Если вы также хотите изменить сеанс (например, чтобы заполнить имя пользователя из сеанса только для одного запроса), вы можете вместо этого добавить это в свой config.inc.php:

session_start();
$config['smtp_user'] = $_SESSION['username'] ?? '%u';
unset($_SESSION['username']);
session_write_close();
person Furkan    schedule 09.05.2020