CakeEmail не работает

Это мой код в методе cakephp на одном из моих контроллеров, но письмо не приходит на счет. Мне действительно нужна помощь в этом.

Когда я печатаю $cc переменная, она дает вывод массива, но не знаю, как узнать, была ли почта отправлена ​​успешно или нет.

Поскольку почта не пришла на почтовый аккаунт, я думаю, что почта отправлена ​​неправильно, или в моем коде есть какая-то ошибка.

$email = new CakeEmail('default');
$body = "<html>
        <head>
            <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
        </head>
        <body>
            <div style='background: #F6F6F6; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; margin: 0; padding: 0;'>
                <table cellspacing='0' cellpadding='0' border='0' height='100%' width='100%'>
                    <tr>
                        <td align='center' valign='top' style='padding: 20px 0 20px 0'>
                            <table bgcolor='FFFFFF' cellspacing='0' cellpadding='10' border='0' width='624' style='border:1px solid #E0E0E0;'>
                                <tr>
                                    <td width='147' align='center'><img src='".Router::url('/', true)."images/logo.png'></td>
                                </tr>
                                <tr bgcolor='#666666'>
                                    <td colspan='2' align='center'>
                                    Forgot Password
                                    </td> 
                                </tr>
                                <tr bgcolor='#CCCCCC'>
                                    <td colspan='2'>Hello Admin, </td>         
                                </tr>
                                <tr bgcolor='#E7E6EC'>
                                    <td> </td> 
                                    <td width='415'>Your new password : ".$new_password."</td>
                                </tr>
                            </table>
                        </td>
                    </tr>
                </table>
            </div>
        </body>
    </html>";

$email->from(array($adminemail =>"Cakeshop"));
$email->emailFormat('both');
//$email->to($check['AdminLogin']['admin_email_address']);
$email->to(array($adminemail));
$email->subject('Recover Password');

$cc=$email->send($body);

1 ответ

При попытке сделать что-то подобное, я бы использовал другой метод, вместо того, чтобы писать свою разметку и присваивать ее переменной $body. Создайте макет и просмотрите сообщения электронной почты и используйте их в качестве разметки. (УВИДЕТЬ НИЖЕ)

  1. Убедитесь, что вы правильно настроили файл email.php. Мне нравится использовать учетную запись Gmail для их отправки, чтобы убедиться, что функция электронной почты работает.

    public $ gmail = array ('host' => 'smtp.gmail.com', 'port' => '465', 'username' => 'Ваш адрес электронной почты Gmail', 'password' => 'Ваш пароль Gmail', 'transport' => 'Smtp', 'tls' => trueenter code here);

  2. Сделав это, добавьте следующий код в свой контроллер.

    $ data = 'Я отправляю эту строку для просмотра электронного письма, затем я могу получить доступ к этой строке, используя $ myData';

    $ Email = новый CakeEmail(); $Email->template('welcome', 'fancy') ->emailFormat('both') ->to('Адрес электронной почты для отправки') ->from('Адрес электронной почты от.'), ->viewVars(массив ('myData' => $data)) ->send();

  3. Создайте разметку для вашей электронной почты, вы можете найти файлы здесь.

Приложение / Просмотр / Электронная почта /html/welcome.ctp Приложение / Просмотр / Макеты / Электронная почта /html/fancy.ctp

Если у вас есть дополнительные вопросы, пожалуйста, напишите мне:

simpsond1988@gmail.com

Другие вопросы по тегам