Отправить ссылку с переменной с помощью Zend_Mail

Я хочу отправить электронное письмо со ссылкой, когда пользователь завершит регистрацию.
Ссылка должна иметь переменную $ id с идентификатором пользователя.
Я пробовал разные вещи, но моя ссылка всегда отображается как
HTTP: //localhost/users-data/activate/.php идентификатор =>

Я использую Zend_Mail.
Например, я пытаюсь отправить пользователю id = 1 ссылку HTTP: // локальный / пользователей-данные / activate1. Тогда я могу взять последний номер url, который должен соответствовать id, и установить статус этого пользователя в моем скрипте активации.

Не могли бы вы показать мне, что я делаю не так?

Это мой регистр действий

public function registerAction()
{
// action body
$request = $this->getRequest();
$form    = new Application_Form_UsersData();

if ($this->getRequest()->isPost()) {
if ($form->isValid($request->getPost())) {
$comment = new Application_Model_UsersData($form->getValues());
$mapper  = new Application_Model_UsersDataMapper();
$mapper->save($comment);

// send email
$id = $comment -> getId();
$formValues = $this->_request->getParams();
$mail = new Application_Model_Mail();
$mail->sendActivationEmail($formValues['email'], $id,$formValues['name']);
$this->_redirect('/users-data/regsuccess');

}
}

$this->view->form = $form;
}

Это моя Application_Model_Mail

class Application_Model_Mail
{

public function sendActivationEmail($email, $id,$name)
{
require_once('Zend/Mail/Transport/Smtp.php');
require_once 'Zend/Mail.php';$config = array('auth' => 'login',
'username' => '*******@gmail.com',
'password' => '******',
'port'     => '587',
'ssl' => 'tls');
$tr = new Zend_Mail_Transport_Smtp('smtp.gmail.com',$config);
Zend_Mail::setDefaultTransport($tr);

$mail = new Zend_Mail();

$mail->setBodyText('Please click the following link to activate your account '
. '<a http://localhost/users-data/activate/.php?id='.$id.'>'.$id.'</a>')
->setFrom('[email protected]', 'Website Name Admin')
->addTo($email, $name)
->setSubject('Registration Success at Website Name')
->send($tr);

}

}

1

Решение

Вы идете из $request в $_request, Последний нигде не определен, поэтому его значения равны нулю.

0

Другие решения

Попробуй это

$mail->setBodyHtml("Please click the following link to activate your".
"account<a href='http://localhost/users-data/activate.php?id=$id'>$id</a>")
0

Неверная HTML-ссылка:

'<a http://localhost/users-data/activate/.php?id='.$id.'>'

В HTML действительная ссылка (обратите внимание на href атрибуты):

<a href="http://...">...</a>

Таким образом, ваш скрипт должен создать ссылку следующим образом:

'<a href="http://localhost/users-data/activate/.php?id='.$id.'">'

Кроме того, я полагаю, http://localhost/users-data/activate/.php это не то, что вы хотите: ваш сценарий, вероятно, имеет имя перед php расширение.

-1
По вопросам рекламы [email protected]