Вышел из Конф
у Меня есть следующий случай: я хочу, чтобы отправить сообщение электронной почты с 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
);
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'],
));