2016-07-25 3 views
0

Im new in phalcon хочу рабочий пример phpmailer, который отправляет электронную почту с моего сайта. в настоящее время я просто так выгляжу. Я просто следую этой ссылке: github.com/asyamedya/phalcon-phpmailer.Как отправить электронное письмо с phpmailer в phalcon php

[config.php]

$config = new Phalcon\Config(array(
"app"    => array(
"controllersDir"=> "app/controllers/", 
"modelsDir"  => "app/models/", 
"viewsDir"  => "app/views/", 
"pluginsDir" => "app/plugins/", 
"libraryDir" => "app/library/", 
"helpersDir" => "app/helpers/", 
"formsDir"  => "app/forms/", 
"cacheDir"  => "cache/volt/", 
"logsDir"  => "cache/logs/", 
"encryptKey" => "", 
"baseUri"  => "/demo/", 
"StaticBaseUri" => "http://localhost/demo/", 
"debug"   => '0', 
), 
"mail"    => array(
    "driver"  => "smtp", 
    "host"   => "smtp.gmail.co",       
    "username"  => "[email protected]",    
    "password"  => "*****",       
    "security"  => "tls", //ssl:465, tls:587      
    "port"   => 587, 
    "charset"  => "UTF-8", 
    "email"   => "[email protected]", 
    "name"   => "webmaster", 
), 
)); 

[loader.php]

use Phalcon\Loader; 
$loader = new Loader(); 
$loader->registerDirs(
    array(
     APP_PATH . $config->app->controllersDir, 
     APP_PATH . $config->app->modelsDir, 
     APP_PATH . $config->app->pluginsDir, 
     APP_PATH . $config->app->libraryDir, 
     APP_PATH . $config->app->helpersDir, 
     APP_PATH . $config->app->formsDir, 
     APP_PATH . $config->app->cacheDir, 
    ) 
)->register(); 

[service.php]

use Phalcon\DI\FactoryDefault; 
use Phalcon\Mvc\View; 
use Phalcon\Mvc\Dispatcher; 
use Phalcon\Mvc\Url as UrlResolver; 
use Phalcon\Mvc\Router; 
use Phalcon\Security; 
use \PHPMailer as PHPMailer; 
use Phalcon\Mvc\View\Engine\Volt; 
use Phalcon\Events\Manager as EventsManager; 
use Phalcon\Db\Adapter\Pdo\Mysql as DbAdapter; 
use Phalcon\Flash\Session as FlashSession; 
use Phalcon\Logger\Adapter\File as Logger; 
use Phalcon\Mvc\Model\Metadata\Apc as ApcMetaData; 
use Phalcon\Session\Adapter\Files as SessionAdapter; 

    require(APP_PATH . $config->app->libraryDir . 'PHPMailer/PHPMailerAutoload.php'); 
    $di->set('pmailer', function() use ($config){ 
    $pmailer = new PHPMailer(); 
    //$mail->setLanguage('fr', '/optional/path/to/language/directory/'); 
    $pmailer->isSMTP(true); 
    $pmailer->SMTPDebug = 2; // Enable verbose debug output 
    $pmailer->SMTPOptions = array(
    'ssl' => array(
    'verify_peer' => false, 
    'verify_peer_name' => false, 
    'allow_self_signed' => true 
    ) 
    ); 
    $pmailer->Charset = $config->mail->charset; 
    $pmailer->Host = $config->mail->host; 
    $pmailer->SMTPAuth = true; 
    $pmailer->Username = $config->mail->username; 
    $pmailer->Password = $config->mail->password; 
    $pmailer->SMTPSecure = $config->mail->security; 
    $pmailer->Port = $config->mail->port; 
    $pmailer->addAddress($config->mail->email,$config->mail->name); 
    $pmailer->isHTML(true); 
    return $pmailer; 
}); 

[Индекс контроллера]

public function SendmailAction() 
{ 
    $this->pmailer->From = "[email protected]"; 
    $this->pmailer->FromName = "user"; 
    $this->pmailer->addReplyTo("[email protected]", "user"); 
    $this->pmailer->addAddress('[email protected]'); 
    $this->pmailer->Subject = "email test !"; 
    $this->pmailer->Body = "success!"; 
    $this->pmailer->WordWrap = 70; 
    if(!$this->pmailer->send()){echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $this->pmailer->ErrorInfo; 
    } else { 
    echo 'Message has been sent'; 
    } 
} 

В моей библиотеке у меня есть эти файлы.

[Библиотека/PHPMailer /]

class.phpmailer.php 
class.pop3.php 
class.smtp.php 
PHPMailerAutoload.php 
class.phpmaileroauthgoogle.php 
+1

[Вы даже пробовали это прибегая к помощи] (https://github.com/asyamedya/phalcon-phpmailer)? Что вы пробовали? Какие ошибки вы получаете? – Timothy

+2

Вам следует попробовать что-то, и если вы потерпите неудачу, спросите нас. StackOverflow не является сервисом, в котором мы пишем код для вас. Пожалуйста, приложите больше усилий. –

+0

Niki Mihaylov & Timothy! Я обновил свой вопрос. и не может отправить почту. пожалуйста! скажите, в чем моя вина? Я получаю Неустранимая ошибка: Class 'Phalcon \ PHPMailer' не найден в C: \ xampp \ htdocs \ demo \ app \ config \ services.php в строке 177 –

ответ

0

Я не уверен, но я думаю, что это неправильно в вашем service.php

use Phalcon\PHPMailer;

Изменить его до

use \PHPMailer as PHPMailer;

+0

Получение: Предупреждение: инструкция использования с не-составным именем ' PHPMailer 'не действует в C: \ xampp \ htdocs \ demo \ app \ config \ services.php в строке 11 Неустранимая ошибка: класс' PHPMailer 'не найден в C: \ xampp \ htdocs \ demo \ app \ config \ services.php on line 177 –

+0

Обновлено, пропущено \ – Borjante

+0

Еще одна проблема! Есть ли здесь кто-нибудь, кто может дать рабочий пример? который также тестировался. –

Смежные вопросы