2015-12-23 2 views
-1

Я использую cakephp2.4.5 & Я создал представление, как:Html теги не работает в CakePHP почты

 <?php echo $this->Session->flash();?> <?php echo $this->Form->create('Feedback', array('controller' => 'Feedbacks', 'action' => 'sendmail')); 
     echo $this->Form->email('mail',array('label' => false,'required' => true,'class'=>'form__in form__in--text form-control','placeholder'=>__('E-mail'),'div'=>false)); 
     echo $this->Form->textarea('message',array('label' => false,'required' => true,'class'=>'form__in form__in--textarea form-control','placeholder'=>__('Message'),'div'=>false)); 
     echo $this->Form->submit('Send', array('label' => 'Send', 'class' => 'form__submit',)); 
     echo $this->Form->end();?> 

Создан контроллер, как:

public function sendmail() { 
$usertopic = "Form"; 
$useremail = $this->data['Feedback']['mail']; 
$usermessage = $this->data['Feedback']['message']; 


$message = '<b>Hi:</b>' . $usermessage . "\r\n" . '<b>Your Message is:</b> ' . $useremail; 

if(CakeEmail::deliver('[email protected]', $usertopic, $message, array('from' => $useremail))) 
{ 
$this->Session->setFlash(__('Your Feedback has been sent'),'flash',array('alert'=>'success')); 
return $this->redirect(array('controller'=>'pages','action'=>'index')); 
} 

Выход будет

<b>Hi:</b> XYZ 
<b>Your Message is:</b> Something 

Может кто-нибудь, пожалуйста, помогите мне, как отправить электронное письмо без этих тегов HTML в теле сообщения. Любое предложение будет благодарно заблаговременно.

ответ

2

Может кто-нибудь, пожалуйста, помогите мне, как отправить электронное письмо с этими тегами HTML в теле сообщения.

Это ваш код? Угадайте, потому что это не похоже на то, что вы потрудились его прочитать.

$message = '<b>Hi:</b>' . $usermessage . "\r\n" . '<b>Your Message is:</b> ' . $useremail; 

Вы или кто-то другой добавил <b> теги там! Просто удалите их.

Также use templates, это довольно уродливое смешение вида, связанного с контроллером. Прочтите документацию о классе CakeEmail.

0

Вы используете быстрый способ отправки электронной почты cakePHP. Используйте стандартный способ отправки электронной почты и задайте формат электронной почты для решения проблемы с вашими тегами HTML. Попробуйте это.

public function sendmail() { 
    $usertopic = "Form"; 
    $useremail = $this->data['Feedback']['mail']; 
    $usermessage = $this->data['Feedback']['message']; 

    $this->Email->sendAs = 'both'; // both = html + plain text (email format) 
    $this->Email->to = '[email protected]'; 
    $this->Email->subject = $usertopic; 
    $message = '<b>Hi:</b>' . $usermessage . "\r\n" . '<b>Your Message is:</b> ' . $useremail; 

    if($this->Email->send($message)){ 
     $this->Session->setFlash(__('Your Feedback has been sent'),'flash',array('alert'=>'success')); 
     return $this->redirect(array('controller'=>'pages','action'=>'index')); 
    } 
} 

Надеюсь, это поможет.

+0

EmailComponent был устарел в 2.0, он мог бы показать правильную конфигурацию и использование CakeEmail. –

Смежные вопросы