Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Объявить экземпляр класса PHPMailer внутри класса Mail


Aeooe

Recommended Posts

Всем доброго времени суток!

 

Столкнулся с проблемой нехватки теоретических знаний в ООП PHP.

.

Хочу переделать библиотеку Mail->smtp (library) - добавить туда phpmyadmin и заменить оригинальный код. 

<?php
namespace Mail;
class Smtp {
   public $smtp_hostname;
   public $smtp_username;
   public $smtp_password;
   public $smtp_port = 25;
   public $smtp_timeout = 5;
   public $verp = false;
   public $mail = false;
   public $body = "";
   public $smtp_response = "";
    public function __construct() {
        require_once(DIR_SYSTEM.'/library/phpmailer/class.phpmailer.php'); //путь до класса phpmailer
        $this->mail = new PHPMailer(true);
        $this->mail->IsSMTP();
        $this->to = explode("\n", str_replace(array("\r\n", "\r"), "\n", trim($this->to)));
        if(!$this->sender){
            $this->sender = array_shift(explode('|',$this->config->get('config_name')));
        }
        if(!$this->subject){
            $this->subject = "";
        }
        if($this->text){
            $this->body = $this->text;
        }
        if($this->html){
            $this->body = $this->html;
        }
    }
    public function send() {

    }
}

 

Столкнулся с проблемой создания экземпляра класса:


<b>Fatal error</b>:  Class 'Mail\PHPMailer' not found in <b>W:\domains\kristall.local\system\library\mail\smtp.php</b> on line <b>15</b><br />

 

ВОПРОС:

Как правильно инициализировать экземпляр класса PHPMailer внутри класса Mail в методе __construct?

 

Змінено користувачем Aeooe
Надіслати
Поділитися на інших сайтах


Я понял что нужно *рулить в сторону*:

spl_autoload_register('library');

И теперь пытаюсь создать экземпляр класса кодом:

$this->mail = new phpmailer\PHPMailer(true);

Где файл c классом PHPMailer находится по пути: /system/library/mail/phpmailer/phpmailer.php

Путь верный и spl_autloader выполнять код: include_once(modification($file));

Модификаций нет.

 

В ответ ошибка:

Class 'Mail\phpmailer\PHPMailer' not found in

 

Сам класс в файле phpmailer.php называется:

class PHPMailer {
Надіслати
Поділитися на інших сайтах


<?php

//ini_set('error_reporting', E_ALL);
//ini_set('display_errors', 1);
//ini_set('display_startup_errors', 1);

$json = array();

require '../PHPMailer/PHPMailerAutoload.php';  //Распаковать папку и подключить


$mail = new PHPMailer;
$mail->isSMTP();
$mail->CharSet = 'UTF-8';
$mail->Encoding = 'base64';

$mail->Host = 'smtp.yandex.ru';
$mail->SMTPAuth = true;
$mail->Username = '****'; //Почта
$mail->Password = '****'; //Пароль
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;

...

И так далее

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.