如何编辑mail.php用户界面

时间:2016-05-28 08:17:48

标签: email cakephp config

我需要帮助。 我想在CakePHP中使用邮件(smtp).php的用户界面

如果有人知道帮助我......

public $stmp = array(
    'transport' => 'Mail',
    'from' => 'you@localhost',
);

public $default = array(
    'transport' => 'Smtp',
    'from' => array('contact@media.com' => 'Admin'),
    'host' => 'mail.mediaenter code here.com',
    'port' => 25,
    'timeout' => 60,
    'username' => '[EMAIL]',
    'password' => '[PASSWORD]',
    'client' => null,
    'log' => true,
);

1 个答案:

答案 0 :(得分:1)

首先,您需要确保您的配置已全部设置完毕。这是一个有效的配置:

在config / app.php

'EmailTransport' => [ 'default' => [ 'className' => 'Smtp', // The following keys are used in SMTP transports 'host' => 'your host', 'port' => your post, 'timeout' => 60, 'username' => 'your username', 'password' => 'your password', 'transport' => 'Smpt', 'tls' => true ], ]

然后你需要创建自己的界面。如果您制作HTML表单,那么标准的CakePHP视图将是最合适的。

在发送HTML数据的控制器中,理想情况下为“post”方法,您可以使用以下代码继续:

在控制器类声明之前:

use Cake\Network\Email\Email;

然后在你的行动中:

if ($this->request->is('post')) { //Assuming you used POST method
    $postData = $this->request->data; //Getting HTML form fields values.
    try {
          $email = new Email();
          $email->profile('default');
          $email->from(['from@email.com' => 'from Name.')
                   ->to('to@email.com')
                   ->replyTo('replyto@email.com')
                   ->subject('your subject')
                   ->send('Your message here!');
    } catch (Exception $e) {
     echo 'Exception : ',  $e->getMessage(), "\n";
    }
}

使用上面的代码,如果由于某种原因没有发送电子邮件,则会在catch语句中回显错误。

有关进一步的配置选项click here