Что случилось с моим требованием для вызова phpmailer? - PullRequest
0 голосов
/ 23 сентября 2018

Каталог для моего композитора и phpmailer.

tree -L 3  /home/bwg
/home/bwg
├── composer.json
├── composer.lock
└── vendor
    ├── autoload.php
    ├── composer
    │   ├── autoload_classmap.php
    │   ├── autoload_namespaces.php
    │   ├── autoload_psr4.php
    │   ├── autoload_real.php
    │   ├── autoload_static.php
    │   ├── ClassLoader.php
    │   ├── installed.json
    │   └── LICENSE
    └── phpmailer
        └── phpmailer
            ├── get_oauth_token.php
            ├── LICENSE
            ├── README.md
            ├── SECURITY.md
            ├── src
            │   ├── Exception.php
            │   ├── OAuth.php
            │   ├── PHPMailer.php
            │   ├── POP3.php
            │   └── SMTP.php
            └── VERSION

Я хочу отправить письмо с vps с помощью phpmailer, сохранить следующий код как sendmail.php (частично, отладить по частям), написатькод в соответствии с веб-страницей здесь.
КАК ОТПРАВИТЬ ПЕРВОЕ ПИСЬМО С PHPMAILER

<?php
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require '/home/bwg/vendor/autoload.php';
require '/home/bwg/vendor/phpmailer/phpmailer/src/Exception.php';
require '/home/bwg/vendor/phpmailer/phpmailer/src/SMTP.php';
require '/home/bwg/vendor/phpmailer/phpmailer/src/PHPMailer.php';
$mail = new PHPMailer(TRUE);
?>

Введите http://vps_ip/sendmail.php в моем браузере, сталкивайтесь с проблемой:

Предупреждение: требуется (/home/bwg/vendor/autoload.php): не удалось открыть поток: отказано в доступе в /var/www/html/sendmail.php в строке 6

Неустранимая ошибка: require (): Не удалось открыть обязательный файл '/home/bwg/vendor/autoload.php' (include_path = '.: / usr / share / pear: / usr / share / php') в / var / www / html / sendmail.php в строке 6

ls  -al  /home/bwg/vendor
total 20
drwxr-xr-x 4 apache apache 4096 Sep 23 07:55 .
drwx------ 5 bwg    bwg    4096 Sep 23 11:10 ..
-rw-r--r-- 1 apache apache  178 Sep 23 07:55 autoload.php
drwxr-xr-x 2 apache apache 4096 Sep 23 07:55 composer
drwxr-xr-x 3 apache apache 4096 Sep 23 07:55 phpmailer

Что случилось с моим требованием?

1 Ответ

0 голосов
/ 27 сентября 2018

$ mail = новый PHPMailer \ PHPMailer \ PHPMailer ();

Чтобы создать среду, аналогичную операциям в моем vps.

Добавить пользователя bwg и его пароль.

useradd -d /home/bwg -m bwg -s /bin/bash
passwd bwg

Добавить разрешение sudo для bwg.

visudo -f /etc/sudoers
bwg ALL=(ALL) NOPASSWD:ALL

Установить композитор и phpmailer

su bwg
cd  /home/bwg
sudo yum install composer
sudo composer require phpmailer/phpmailer

Для проверки new PHPMailer();

 php -a
Interactive shell

php > use PHPMailer\PHPMailer\PHPMailer;
php > use PHPMailer\PHPMailer\Exception;
php > require '/home/bwg/vendor/autoload.php';
php > require '/home/bwg/vendor/phpmailer/phpmailer/src/Exception.php';
php > require '/home/bwg/vendor/phpmailer/phpmailer/src/SMTP.php';
php > require '/home/bwg/vendor/phpmailer/phpmailer/src/PHPMailer.php';
php > $mail = new PHPMailer();
PHP Warning:  Uncaught Error: Class 'PHPMailer' not found in php shell code:1
Stack trace:
#0 {main}
  thrown in php shell code on line 1

Для проверки PHPMailer\PHPMailer\PHPMailer().

php -a
Interactive shell

php > use PHPMailer\PHPMailer\PHPMailer;
php > use PHPMailer\PHPMailer\Exception;
php > require '/home/bwg/vendor/autoload.php';
php > require '/home/bwg/vendor/phpmailer/phpmailer/src/Exception.php';
php > require '/home/bwg/vendor/phpmailer/phpmailer/src/SMTP.php';
php > require '/home/bwg/vendor/phpmailer/phpmailer/src/PHPMailer.php';
php > $mail = new PHPMailer\PHPMailer\PHPMailer();
php > 
...