【问题标题】:CakeEmail not workingCakeEmail 不工作
【发布时间】:2015-05-14 10:49:34
【问题描述】:

这是我在我的一个控制器中的 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);

【问题讨论】:

  • 请尝试 var_dump($cc) 并检查电子邮件发送状态,它将布尔返回
  • 它返回了一个数据数组
  • 分享了你的返回输出数组。
  • 您是否正确配置了您的电子邮件设置?你可以用类似 mailcatcher 的东西来测试它
  • Array ( [headers] => 发件人:soumik.chakraborty@webguru-development.com X-Mailer:CakePHP 电子邮件日期:2015 年 5 月 14 日星期四 12:14:37 +0000 邮件 ID: MIME-Version: 1.0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit [message] => 忘记密码 您好管理员,您的新密码:nmszwd

标签: cakephp cakeemail


【解决方案1】:

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

  1. 确保您已正确设置 email.php 文件,我喜欢使用 Gmail 帐户首先发送它们,以确保电子邮件功能正常工作。

    公共 $gmail = 数组( '主机' => 'smtp.gmail.com', '端口' => '465', '用户名' => '您的 Gmail 电子邮件', '密码' => '您的 Gmail 密码', '传输' => 'Smtp', 'tls' => 真enter code here );

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

    $data = '我将这个字符串发送到电子邮件视图,然后我可以使用 $myData' 访问这个字符串';

    $Email = new CakeEmail(); $Email->template('welcome', 'fancy') ->emailFormat('两者') ->to('要发送到的电子邮件地址') ->from('电子邮件地址来自。'), ->viewVars(数组('myData' => $data)) ->发送();

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

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

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

simpsond1988@gmail.com

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多