沃梦达 / 编程问答 / php问题 / 正文

CakePHP 发送电子邮件

CakePHP send email(CakePHP 发送电子邮件)

本文介绍了CakePHP 发送电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在使用 CakePHP 发送邮件时遇到问题.一切都很好,但我没有收到任何一封邮件,我厌倦了发送 2 封不同的电子邮件.

I've got a problem with sending mail using CakePHP. Everythings giong well, but i didn't receive any single mail , i tired to send to 2 different emails .

//WebsitesController.php

//WebsitesController.php

App::uses('AppController','Controller');
App::uses('CakeEmail','Network/Email');
class WebsitesController extends AppController
{
    public $helpers = array('Html','Form','Session');
    public $components = array('Email','Session');

public function contact()
{

    $this->set('dane',  $this->Website->findById(4));        
}
public function contact_email()
{ /* all data is taken from contact.ctp, I debuged all data below and it's correct */
    $useremail = $this->data['Website']['useremail'];
    $usertopic = $this->data['Website']['usertopic'];
    $usermessage = $this->data['Website']['usermessage'];
    $Email = new CakeEmail();
    $Email->from(array($useremail => ' My Site'));
    $Email->to('wigan@mail.com');
    $Email->subject($usertopic); // all data is correct i checked several times
    $Email->send($usermessage);
    if($Email->send($usermessage))
    {
        $this->Session->setFlash('Mail sent','default',array('class'=>'alert alert-success'));
        return $this->redirect(array('controller'=>'websites','action'=>'contact'));
    }
    $this->Session->setFlash('Problem during sending email','default',array('class'=>'alert alert-warning'));
}
}

//contact.ctp

//contact.ctp

 <fieldset>
        <?php
            echo $this->Form->create('Website',array('controller'=>'websites','action'=>'contact_email'));
            echo $this->Form->input('useremail',array('class'=>'form-control'));
            echo $this->Form->input('usertopic',array('class'=>'form-control'));
            echo $this->Form->input('usermessage',array('class'=>'form-control'));
            echo $this->Form->submit('Send',array('class'=>'btn btn-default')); 
            echo $this->Form->end(); 
        ?>
    </fieldset>

一切似乎都很好,即使函数 contact_email 中的语句被批准.

all seems to be fine, even if statement in function contact_email is approved.

配置(我正在使用 localhost、xampp、netbeans 7.4)

configuration ( i'm working on localhost, xampp, netbeans 7.4)

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',
);

推荐答案

试试这个,你没有设置配置

try this, you didn't set the config

public function contact_email()
{ /* all data is taken from contact.ctp, I debuged all data below and it's correct */
    $useremail = $this->data['Website']['useremail'];
    $usertopic = $this->data['Website']['usertopic'];
    $usermessage = $this->data['Website']['usermessage'];
    $Email = new CakeEmail();
    $Email->config('smtp')
          ->emailFormat('html')
          ->from($useremail)        
          ->to('wigan@mail.com')
          ->subject($usertopic); // all data is correct i checked several times
    if($Email->send($usermessage))
    {
        $this->Session->setFlash('Mail sent','default',array('class'=>'alert alert-success'));
        return $this->redirect(array('controller'=>'websites','action'=>'contact'));
    } else  {
        $this->Session->setFlash('Problem during sending email','default',array('class'=>'alert alert-warning'));
    }
}

这篇关于CakePHP 发送电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:CakePHP 发送电子邮件

基础教程推荐