2011-02-07 3 views
1

Я пытаюсь отправить почту, используя компонент электронной почты cakephp. Но почта не доставляет, и не появляется сообщение об ошибке. мне нужно установить дополнительные параметры? вот мой фрагмент кода:Как отправить электронную почту с помощью компонента электронной почты cakephp?

  $this->Email->from='<[email protected]>'; 
    $this->Email->to='<[email protected]>'; 
    $this->Email->sendAs='both'; 
    $this->Email->delivery = 'debug'; 
    $this->Email->send(); 
+0

У меня были некоторые проблемы с CakePHP компонентом электронной почты - я обнаружил, что я мог бы отправить почту только при использовании SMTP. Возможно, вы захотите попробовать, если это будет работать (http://book.cakephp.org/view/1290/Sending-A-Message-Using-SMTP). Кроме того, вы создали свои шаблоны электронной почты? (http://book.cakephp.org/view/1286/Sending-a-basic-message#Setting-up-the-Layouts-1287) – Tomba

ответ

5

Вы должны попробовать изменить

$this->Email->delivery = 'debug'; 

Для

$this->Email->delivery = 'mail'; 

Узнайте больше на сайте: http://api.cakephp.org/class/email-component

+0

Спасибо за ваш добрый ответ ... Это может работать на localhost? – pushpa

0

Попробуйте изменить

$this->Email->from='<[email protected]>'; 
$this->Email->to='<[email protected]>'; 

в

$this->Email->from='[email protected]'; 
$this->Email->to='[email protected]'; 

Только теперь я решил свою проблему с ним. Cake не отправил сообщения, когда доставка была установлена ​​на mail, но с Google SMTP он работал нормально. Для SMTP Google необходимы адреса, чтобы они были как Name <[email protected]>. Когда я удалил Name, < и >, он начал отправлять электронные письма с помощью метода доставки, установленного в mail.

И, кстати, очень возможно, что он не будет запускаться на локальном хосте (из-за того, что вы являетесь возможным спамером или что-то еще), поэтому попробуйте загрузить приложение на сервер, а затем отправить письма.

Редактировать: также изменить способ доставки на почту. Но если вы хотите, чтобы увидеть отладку почты, что вам нужно сделать echo $this->Session->flash('email'); на ваш взгляд, когда способ доставки отладочный набор

0

Try и заменить это:

$this->Email->from='<[email protected]>'; 
$this->Email->to='<[email protected]>'; 

с этим:

$this->Email->from='XYZ <[email protected]>'; 
$this->Email->to='ABC <[email protected]>'; 

У меня была аналогичная проблема, и кажется, что если вы не укажете имя (XYZ, ABC), письмо не будет отправлено и никаких ошибок не покажет. Я использовал SMTP-сервер gmail, надеюсь, это поможет.

Также здесь статья Cookbook на электронную почту: http://book.cakephp.org/view/269/Sending-a-basic-message

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