CakeEmail无法正常工作

时间:2015-05-14 10:49:35

标签: cakephp cakeemail

这是我的一个控制器中的cakephp方法中的代码,但没有电子邮件。我真的需要帮助。

当我打印$cc变量时,它给出了数组的输出,但不知道如何知道邮件是否已成功发送。

由于没有邮件来到mailaccount,所以我猜邮件没有正确发送,或者我的代码中有一些错误。

$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 个答案:

答案 0 :(得分:0)

尝试这样的事情时,我会使用不同的方法,而不是编写标记并将其分配给$ body变量。为电子邮件创建布局和视图,并将其用作标记。 (见下文)

  1. 请确保您已正确设置email.php文件,我希望首先使用Gmail帐户发送这些文件,以确保电子邮件功能正常运行。

    public $ gmail = array(     &#39;主机&#39; =&GT; &#39; smtp.gmail.com&#39 ;,     &#39;端口&#39; =&GT; &#39; 465&#39 ;,     &#39;用户名&#39; =&GT; &#39;您的Gmail电子邮件&#39;,     &#39;密码&#39; =&GT; &#39;您的Gmail密码&#39;,     &#39;传输&#39; =&GT; &#39;的smtp&#39 ;,     &#39; TLS&#39; =&GT;真enter code here );

  2. 完成此操作后,请将以下代码添加到控制器中。

    $ data =&#39;我将此字符串发送到电子邮件的视图,然后我可以使用$ myData&#39;;

    访问此字符串

    $ Email = new CakeEmail(); $ Email-&gt;模板(&#39; welcome&#39;,&#39; fancy&#39;)      - &GT; emailFormat(&#39;既&#39;)      - &gt; to(&#39;要发送给&#39;的电子邮件地址)      - &gt; from(&#39;电子邮件地址来自。&#39;),      - &gt; viewVars(数组(&#39; myData&#39; =&gt; $ data))      - &gt;置于();

  3. 为您的电子邮件构建标记,您可以在此处找到这些文件。

  4. 应用程序/查看/电子邮件/ HTML / welcome.ctp 应用/视图/布局/电子邮件/ HTML / fancy.ctp

    如果您有任何其他问题,请随时给我发电子邮件:

    simpsond1988@gmail.com