如何设置Cakephp电子邮件?

时间:2014-07-04 00:49:06

标签: php email cakephp

我想知道如何让这个cakephp电子邮件工作。我知之甚少,但想知道我需要使用什么。我将使用我的网站电子邮件这样的东西,如admin@website.com但它能够通过Gmail登录,因为它是这样设置的。谢谢。

<?php

class EmailConfig {

public $mail = array(
    'transport' => 'Mail',
    'from' => 'test@test.com',       
    'charset' => 'utf-8',
    'headerCharset' => 'utf-8',
);

public $smtp = array(
    'transport' => 'Smtp',
    'from' => array('site@localhost' => 'My Site'),
    'host' => 'localhost',
    'port' => 25,
    'timeout' => 30,
    'username' => 'user',
    'password' => 'secret',
    'client' => null,
    'log' => false,
    //'charset' => 'utf-8',
    //'headerCharset' => 'utf-8',
);

public $gmail = array(
    'host' => 'ssl://smtp.gmail.com',
    'port' => 465,
    'username' => 'test@test.com',
    'password' => 'myPass',
    'transport' => 'Smtp'
);

public $fast = array(
    'from' => 'you@localhost',
    'sender' => null,
    'to' => null,
    'cc' => null,
    'bcc' => null,
    'replyTo' => null,
    'readReceipt' => null,
    'returnPath' => null,
    'messageId' => true,
    'subject' => null,
    'message' => null,
    'headers' => null,
    'viewRender' => null,
    'template' => false,
    'layout' => false,
    'viewVars' => null,
    'attachments' => null,
    'emailFormat' => null,
    'transport' => 'Smtp',
    'host' => 'localhost',
    'port' => 25,
    'timeout' => 30,
    'username' => 'user',
    'password' => 'secret',
    'client' => null,
    'log' => true,
    //'charset' => 'utf-8',
    //'headerCharset' => 'utf-8',
);

}

2 个答案:

答案 0 :(得分:0)

以下是适用于Gmail / Google Apps托管电子邮件的示例配置。您显然需要使用自己的电子邮件地址和密码填写。

class EmailConfig {
    public $default = array(
        'transport' => 'Smtp',
        'from' => array('example@domain.com' => 'Joe Bloggs'),
        'host' => 'ssl://smtp.gmail.com',
        'port' => 465,
        'timeout' => 30,
        'username' => 'example@domain.com',
        'password' => 'YOUR_GMAIL_PASS_GOES_HERE'
    );
}

答案 1 :(得分:0)

除非您要连接的特定SMTP服务器,要发送电子邮件,否则您无需更改默认的email.php。只需确保在通话中包含from()和to()。

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

$Email = new CakeEmail();
$Email->from(['noreply@host.com' => 'No Reply'])
    ->to('recipient@otherhost.com')
    ->subject('My subject')
    ->send('The body of the email');

只使用默认配置将使用您在PHP中设置的任何邮件功能。在UNIX机器上,通常会将机器设置为中继邮件。在Windows计算机上,您可能需要设置邮件中继,除非它是SMTP服务器。

如果它是您的开发环境和Windows,那么我建议您设置smtp4dev。 smtp4dev是一个非常方便的工具,可以侦听端口25,并且行为类似于SMTP服务器。这将确保您的开发环境中的任何本地生成的电子邮件都不会传播到外部世界。