отправка электронной почты с localhost в cakephp с использованием emailcomponent - PullRequest
0 голосов
/ 03 декабря 2011
<?php 

    class EmailsController extends AppController
    {
        var $uses=null;
        var $components=array(
                'Email'=>array(
                    'delivery'=>'smtp',
                    'smtpOptions'=>array(
                      'host'=>'ssl://smtp.google.com',
                      'username'=>'username@gmail.com',
                      'password'=>'password',
                      'port'=>465
                      )


        ));

         function sendEmail() {
            $this->Email->to = 'Neil <neil6502@gmail.com>';
            $this->Email->subject = 'Cake test simple email';
            $this->Email->replyTo = 'neil6502@gmail.com';
            $this->Email->from = 'Cake Test Account <neil6502@gmail.com>';
            //Set the body of the mail as we send it.
            //Note: the text can be an array, each element will appear as a
            //seperate line in the message body.
            if ( $this->Email->send('Here is the body of the email') ) {
                $this->Session->setFlash('Simple email sent');
            } else {
                $this->Session->setFlash('Simple email not sent');
            }
            $this->redirect('/');
            } 





    }


?>

Код выше, мой контроллер отвечает за отправку писем ...

но когда я запускаю эту функцию sendEmail(), используя url http://localhost/authentication/emails/sendemail, она ничего не показывает, даже ни одной ошибки или какого-либо ответа ... полная пустая страница. Я не знаю причину.

Ответы [ 4 ]

0 голосов
/ 08 октября 2016

На самом деле в моем случае: я получил сообщение об ошибке «SMTP-сервер не принял пароль».

После этого я перехожу по ссылке ниже, и проблема была решена: Шаг 1: https://blog.shaharia.com/send-email-from-localhost-in-cakephp-using-cakeemail/ Шаг 2: Отправка письма активации, SMTP-сервер не принял пароль

0 голосов
/ 04 октября 2013
/* Auf SMTP-Fehler prüfen */
 $this->set('smtp_errors', $this->Email->smtpError);
0 голосов
/ 04 октября 2013

Я бы добавил конфигурацию электронной почты в ваш файл email.php, расположенный в / app / Config / email.php , если он не существует , скопируйте email.php.default в электронную почту. php, Измените там настройки smtp

public $smtp = array(
    'host' => 'ssl://smtp.gmail.com',
    'port' => 465,
    'username' => 'my@gmail.com',
    'password' => 'secret'
);

В верхней части вашего контроллера выше класса EmailsController расширяется добавление AppController,

App::uses('CakeEmail', 'Network/Email');

Затем в вашей функции sendEmail () попытайтесь,

$Email = new CakeEmail();
$Email->from(array('me@example.com' => 'My Site'))
    ->to('you@example.com')
    ->subject('About')
    ->send('My message');

На тестовые письма Обычно я отправляю их в Журналы Cake,

** В /app/Config/email.php включите: (Вывод журнала должен быть /app/tmp/logs/debug.log)

public $test = array(
  'log' => true
);

Также сделав это , добавьте 'test' к вашей переменной $ Email например, **

$Email = new CakeEmail('test');
0 голосов
/ 03 декабря 2011

Я думаю, что у меня была такая же проблема некоторое время назад. Возможно, вам нужно изменить адрес to на значение, которое содержит просто адрес, поэтому вместо Name <email@example.com> следует использовать email@example.com.

Вы можете проверить наличие ошибок, зарегистрировав (или отладив) ошибки smtp с помощью:

$this->log($this->Email->smtpError, 'debug');

или

debug($this->Email->smtpError);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...