Как отправить электронное письмо с использованием компонента CakePHP? - PullRequest
1 голос
/ 07 февраля 2011

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

            $this->Email->from='<xyz@yahoo.com>';
    $this->Email->to='<abc@gmail.com>';
    $this->Email->sendAs='both';
    $this->Email->delivery = 'debug';
    $this->Email->send();

Ответы [ 3 ]

5 голосов
/ 08 февраля 2011

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

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

Для

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

Подробнее на: http://api.cakephp.org/class/email-component

0 голосов
/ 03 августа 2011

Попробуйте и замените это:

$this->Email->from='<xyz@yahoo.com>';
$this->Email->to='<abc@gmail.com>';

На это:

$this->Email->from='XYZ <xyz@yahoo.com>';
$this->Email->to='ABC <abc@gmail.com>';

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

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

0 голосов
/ 19 февраля 2011

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

$this->Email->from='<xyz@yahoo.com>';
$this->Email->to='<abc@gmail.com>';

до

$this->Email->from='xyz@yahoo.com';
$this->Email->to='abc@gmail.com';

Только сейчас я решил свою проблему с этим. Cake не будет отправлять сообщения, когда доставка была установлена ​​на mail, но с Google SMTP все работало нормально. Google SMTP нужно, чтобы адреса были такими, как Name <email@example.com>. Когда я удалил Name, < и >, он начал отправлять электронные письма заблаговременно с методом доставки, установленным на mail.

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

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

...