5

我做了什么

    public $smtp = array(
        'transport' => 'Smtp',
        'from' => array('me@mydomain.com' => 'test'),
        'host' => 'mail.mydomain.com',
        'port' => 80,
        'timeout' => 60,
        'username' => 'me@mydomain.com',
        'password' => 'me123',
        'client' => null,
        'log' => false,
        //'charset' => 'utf-8',
        //'headerCharset' => 'utf-8',
    );

    $email    = new CakeEmail('Smtp');
    $result   = $email->template('welcome_mail','default')
                       ->emailFormat('html')
                        ->to($to_email)
                        ->from('me@mydomain.com')
                        ->subject('Welcome')
                        ->viewVars($contents);

    if($email ->send('Smtp'))
    {   
        echo ('success');

    }

我在这里做错了什么?请问可以在这里解释 smtp 设置吗?什么是主机、用户名、密码、客户端?

请指导我什么是主机

我必须在这里设置哪个用户名和密码

4

1 回答 1

6

我会将电子邮件配置添加到位于/app/Config/email.php的 email.php 文件中,如果它不存在,请将email.php.default 复制到 email.php,在那里更改 smtp 设置

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

在控制器的顶部类控制器扩展 AppController 添加,

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

然后发送电子邮件,尝试

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

为了测试电子邮件,我通常会将它们发送到 Cake Logs,

**在/app/Config/email.php中,包括:(日志输出应该是/app/tmp/logs/debug.log)

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

也这样做将“测试”添加到您的 $Email 变量中,例如,**

$Email = new CakeEmail('test');
于 2013-10-05T07:08:58.557 回答