[英]debugging email not working in cakephp
我试图在cakephp中调试电子邮件,因为我无法发送测试邮件。 但是,我所做的一切都给我一个空白的网页,甚至是调试。 我已经将调试模式设置为2。下面是我的代码:
C:\\ xampp \\ htdocs \\ NewFolder \\ app \\ webroot \\ email \\ app \\ controllersmailer_controller.php
<?php
class MailerController extends AppController {
var $name = 'Mailer';
//Not using a model
var $uses = '';
//The built in Cake Mailer
var $components = array('Email');
$this->Email->delivery = 'debug';
/**
* Send a text string as email body
*/
function sendSimpleMail() {
//$this->Email->to = 'yourlogin@localhost';
$this->Email->to = 'csorila17@gmail.com';
$this->Email->subject = 'Cake test simple email';
$this->Email->replyTo = 'noreply@example.com';
$this->Email->from = 'Cake Test Account <noreply@example.com>';
//Set the body of the mail as we send it.
//Note: the text can be an array, each element will appear as a
//seperate line in the message body.
if ( $this->Email->send('Here is the body of the email') ) {
$this->Session->setFlash('Simple email sent');
} else {
$this->Session->setFlash('Simple email not sent');
}
//$this->redirect('/');
$this->Email->delivery = 'debug';
}
}
?>
C:\\ xampp \\ htdocs \\ NewFolder \\ app \\ webroot \\ email \\ app \\ views \\ layouts \\ default.ctp
<?php echo $this->Session->flash(); ?>
<?php echo $this->Session->flash('email'); ?>
C:\\ xampp \\ htdocs \\ NewFolder \\ app \\ webroot \\ email \\ app \\ views \\ layouts \\ email \\ html \\ default.ctp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body>
<?php echo $content_for_layout; ?>
<?php echo $this->Session->flash(); ?>
<?php echo $this->Session->flash('email'); ?>
</body>
</html>
C:\\ xampp \\ htdocs \\ NewFolder \\ app \\ webroot \\ email \\ app \\ views \\ layouts \\ email \\ text \\ default.ctp
<?php echo $content_for_layout; ?>
如果您在本地运行此应用程序,我相信您需要设置一个邮件服务器才能工作,否则,您可以对任何提供程序使用smtp mail选项。 为此,您必须配置邮件设置。
在您的app\\config
您可以创建一个文件email.php
<?php
class EmailConfig {
public $default = array(
'host' => 'ssl://smtp.gmail.com',
'port' => 465,
'username' => 'your email address', //example@gmail.com
'password' => 'password',
'transport' => 'Smtp',
'from' => array('From Email Address' => 'Name to be displayed in the Email'),
'log' => true
);
}
之后,您可以在控制器中设置以下代码来发送电子邮件。
$email = new CakeEmail();
$email->to('example@gmail.com');
$email->subject('Email testing Subject');
$email->send('Email testing content');
除了需要可访问的SMTP服务器外,您还不能将此语句放在函数之外...
$this->Email->delivery = 'debug'; // needs to be *inside* a function
另外请注意,当你使用这个命令,它只会保存电子邮件到一个会话变量和不发送。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.