我需要帮助。 我想在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,
);
答案 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