Я новичок в CakePHP и отчаянно пытаюсь учиться!
Моя самая последняя борьба с компонентом электронной почты.
У меня есть контракт. Когда я создаю договор, я добавляю пользователя. Когда я сохраняю новый контракт ... в первый раз, я хочу отправить электронное письмо пользователю в этом контракте, в котором он может щелкнуть ссылку обратно в контракт, а затем принять или отклонить контракт.
Как мне отправить это письмо?
Чем больше деталей я смогу получить, тем лучше. Все, что я прочитал там, удивительно запутанно. Нужно ли настраивать параметры smtp? Как получить пользователя в договоре после его сохранения и передать его и ссылку на договор на электронную почту? Как я узнаю, отправлено ли письмо, не посещая и не проверяя мою почту каждый раз?
Вот код, который у меня есть в моем contract_controller.php для функции отправки электронной почты: (Контракт принадлежит Пользователю, а Пользователь имеет Много Контрактов.)
function _sendContractEmail($id) {
$this->Email->smtpOptions = array(
'port'=>'465',
'timeout'=>'30',
'host'=>'ssl://smtp.gmail.com',
'username'=>'username',
'password'=>'password'
);
$this->Email->delivery = 'smtp';
$User = $this->Contract->User->read(null,$id);
$this->Email->to = 'jeremiah@jeremiahotis.com';
$this->Email->subject = '';
$this->Email->replyTo = 'no-reply@goodvaluation.com';
$this->Email->from = 'Jeremiah Oits <jeremiah@jeremiaotis.com>';
$this->Email->template = 'simple_message';
$this->Email->sendAs = 'html';
$this->set('User', $User);
$this->Email->_debug = true;
$this->Email->send('Test Email');
$this->redirect(array('controller'=>'contracts', 'action'=>'index'));
}
Вот код, который у меня есть в моей функции contract_controller.php add ():
function add() {
if (!empty($this->data)) {
$this->Contract->create();
if ($this->Contract->save($this->data)) {
$this->Session->setFlash(__('The Contract has been saved', true));
$this->_sendContractEmail($this->Contract->User->id);
} else {
$this->Session->setFlash(__('The Contract could not be saved. Please, try again.', true));
}
И это вверху моего файла contract_controller.php после $ name и $ helpers:
var $components = array('Email');
Полагаю, мне следует указать, что у меня возникли проблемы с шаблоном, поэтому для его проверки я включил тело письма непосредственно в send () и указал адрес электронной почты вместо использования переменной. Еще ничего! Нет ошибок, нет электронной почты.
Любая помощь будет принята с благодарностью! Я действительно понятия не имею, что я делаю неправильно!
Спасибо
Иеремия