如何在cakephp中发送smtp邮件2

时间:2013-10-05 06:44:17

标签: email smtp cakephp-2.0

我做了什么

    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设置吗? 什么是主机,用户名,密码,客户端?

请指导我什么是主持人

我必须在此处设置的用户名和密码

1 个答案:

答案 0 :(得分:5)

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

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

在控制器顶部,类控制器扩展了AppController add,

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');