【发布时间】:2012-01-22 16:48:49
【问题描述】:
我正在开发一个应用程序,允许用户通过电子邮件发送他/她正在查看的文章。我正在使用 Ajax 来处理它。基本上,用户添加他/她的电子邮件/姓名和应该发送消息的人的电子邮件。我在将数据数组传递给我的 cakephp 函数时遇到问题。数据被准确地放置在数组中,但我在 CakePHP 函数中看不到它,特别是正在发送的电子邮件。
我的 Javascript 代码
var dataString = new Array();
dataString[0] = name;
dataString[1] = email;
// This will display Joe Schmoe, email@domain.com
alert(dataString); return false;
$('#contact-area').html("<div id='Sending' style='margin-left:410px;color:red;border:1px solid red'>Enviando...Por favor, aguarde um momento!</div>");
$.ajax({
type: "POST",
url: "/articles/enviar",
data: dataString,
success: function() {
$('#Sending').hide();
$('#contact-area').html("<div id='message' style='margin-left:410px;color:red;border:1px solid red'></div>");
$('#message').html("<h3>A Sua Mensagem Ja Foi Enviada!</h3>")
.append("<p>Obrigado.</p>")
.hide()
我的控制器操作
function enviar(){
//debug($emailInfo);
// Send email with new password
$this->Email->to = 'xxxxxxx@yahoo.com';//testing without array
$this->Email->subject = 'Hello';//$emailInfo['name'].' - Noticia Na Bravanews';
$this->Email->from = 'xxxxxx@bravanews.com';//testing without array
$this->Email->sendAs = 'html';
$this->Email->template = 'enviar_email';
$this->Email->smtpOptions = array(
'port'=>'465',
'timeout'=>'30',
'host' => 'ssl://smtp.gmail.com',
'username'=>'xxxxx@gmail.com',
'password'=>'xxxxxxxx'
);
$this->Email->delivery = 'smtp';
// this displays as nothing
$this->set('emailInfo', $this->data);
if($this->Email->send()){
return true;
}else{
return false;
}
}
还有我的电子邮件模板
Hello,<br />
<?php e($emailInfo[0]); ?> sugeriu que leias a seguinte notícia na Bravanews.<br>
<?php e($emailInfo[1]); ?><br>
Por favor clique no link abaixo:<br /><br>
<?php debug($emailInfo); ?>
我该如何解决这个问题。我无法将任何内容转换为电子邮件模板,因此我可以打印或发送电子邮件...
【问题讨论】:
标签: php jquery ajax email cakephp