Вышел из Конф


у Меня есть следующий случай: я хочу, чтобы отправить сообщение электронной почты с cakephp, но, так как есть несколько пользователей в банк (каждый из которых содержит по электронной почте либо другой), нужно отправить адрес электронной почты и пароль для каждого пользователя в файл /app/Config/email.php, то есть, просто взять сессии. Уже есть метод, который записывает данные пользователя, будучи $this->Session->read('UsuarioLogado'), и таким образом может пройти остальные параметры: $this->Session->read('UsuarioLogado')['User']['email'] $this->Session->read('UsuarioLogado')['User']['пароль'], но при попытке передать эти значения в систему для файлов, электронной почты.php, он дает сообщение об ошибке сказав, что необходимо использовать это внутри функции.

Почты.php:

public $smtp = array(
            'host' => 'ssl://smtp.gmail.com',
            'port' => 465,
            'from' => array($_SESSION['UsuarioLogado']['User']['email'] => $_SESSION['UsuarioLogado']['User']['nome']),
            'username' => $_SESSION['UsuarioLogado']['User']['email'],
            'password' => $_SESSION['UsuarioLogado']['User']['senha'],
            'transport' => 'Smtp',
            'tls' => false // As of 2.3.0 you can also enable TLS SMTP
    );
Author: Julyano Felipe, 2015-04-06

1 answers

В самом деле, вы не можете установить свойства динамически, прямо в файле конфигурации Email. Вам нужно сделать это Controller, например.

Методом config(), вы можете одновременно провести string, который представляет собой один из параметров, заданных этих файлов, или array, собственные свойства конфигурации SMTP.

Чтобы сделать это, сделать что-то вроде:

$sess = $this->Session->read('UsuarioLogado');

$Email = new CakeEmail();
$Email->config(array(
    'host' => 'ssl://smtp.gmail.com',
    'port' => 465,
    'username' => $sess['User']['email'],
    'password' => $sess['User']['senha'],
));
 1
Author: Paulo Rodrigues, 2015-04-07 12:13:41