0

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

1 回答 1

0

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

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

    public $gmail = array( 'host' => 'smtp.gmail.com', 'port' => '465', 'username' => '你的 Gmail 邮箱', 'password' => '你的 Gmail 密码', 'transport' => 'Smtp', 'tls' => true enter code here );

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

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

    $Email = 新的 CakeEmail(); $Email->template('welcome', 'fancy') ->emailFormat('both') ->to('要发送到的电子邮件地址') ->from('来自的电子邮件地址'), -> viewVars(array('myData' => $data)) ->send();

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

app/View/Emails/html/welcome.ctp app/View/Layouts/Emails/html/fancy.ctp

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

simpsond1988@gmail.com

于 2015-05-14T15:33:20.273 回答