Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Gotowe rozwiązania _ PHPMailer 6 Instrukcja

Napisany przez: Malinaa 5.08.2018, 22:16:44

Witam,
ściągnąłem PHPMailer'a w wersji 6.0.0 trochę różni się od starszych wersji i nie wiem o co chodzi tutaj z takim przykładowym kodem użycia require 'PHPMailerAutoload.php'; kiedy po rozpakowaniu nie ma w paczce takiego pliku jak PHPMailerAutoload.php jest tylko PHPMailer.php
Proszę o przykład i info o co chodzi z plikiem ...Autoload? Jak poprawnie skonfigurować i uruchomić PHPMailer w wersji 6 i wyższej?



Napisany przez: viking 6.08.2018, 05:45:43

Stosuj composera i problem z głowy. Poza tym gdzie tutaj https://github.com/PHPMailer/PHPMailer masz cokolwiek o PHPMailerAutoload.php?

Napisany przez: Malinaa 7.08.2018, 08:17:07

Cytat
Stosuj composera i problem z głowy.

Kiedyś zainstalowałem Composera bo byłem ciekaw Symfony, gdzieś jest na kompie, ale jak go stosować?

Podaj proszę konkretny przykład krok po kroku dla PHPMailer 6 i problem będzie z głowy.

Napisany przez: viking 7.08.2018, 09:32:31

Kompletny przykład masz w podanej wyżej dokumentacji plus dokumentacja composera. Robisz require załączasz autoload do projektu i używasz.

Napisany przez: Malinaa 7.08.2018, 10:29:09

Dokumentacja PHPMailera wydaje się być zrozumiała, ale co zrobić z Composerem nie kumam?
Powstaje też pytanie, kiedy skrypt kontakt.php piszę na localhost, a dalej jak użyć i zastosować całość na serwerze z Composerem?

Napisany przez: viking 7.08.2018, 10:32:25

W najprostszej postaci przegrywasz wszystko przez ftp. Nie kumasz czego? Tego jednego polecenia czy instalacji?

Napisany przez: Malinaa 7.08.2018, 11:30:42

Wystarczy przegrać przez FTP i Composer też będzie działał, więc super!

Nie kumam np. co z plikiem composer.json gdzie on, co, jak
i podobnie jak na początku pisałem problem z autoload?

U nie po wklejeniu Simple Example ze strony PHPMailera mam błąd:
Fatal error: require(): Failed opening required 'vendor/autoload.php'

Napisany przez: viking 7.08.2018, 11:48:44

Trzeba by jeszcze podać poprawną ścieżkę do pliku ale to już podstawy używanego systemu operacyjnego.

Napisany przez: Malinaa 7.08.2018, 12:07:04

Czy sądzisz, że nie podałbym poprawnej ścieżki gdybym wiedział gdzie jest plik Autoload wymagany do działania PHPMailera?

Jak się domyślam po instalacji Composera powinienem mieć plik autoload.php - gdzie on jest?

Jak zastosować Composera, plik jest gdzieś na serwerze? Szukam i nic nie znajduje, co, jak z tym Composerem i vendor autoload?

Napisany przez: viking 7.08.2018, 12:11:50

Jest w vendor/autoload.php.
https://getcomposer.org/doc/01-basic-usage.md

Napisany przez: Malinaa 7.08.2018, 12:59:08

Composer! Jak zastosować w PHPMailer 6? Help vendor/autoload.php ?

Napisany przez: viking 7.08.2018, 13:03:00

Raczysz przeczytać cokolwiek z dokumentacji?

Z wiersza poleceń: composer require phpmailer/phpmailer, composer update
w pliku gdzie chcesz używać:

require 'vendor/autoload.php';

... nowa instancja klasu.

Napisany przez: Malinaa 8.08.2018, 10:02:33

Wcześniej czytałem na szybko, teraz próbowałem ze zrozumieniem,
sorry, ale jest jakiś drobiazg, którego "nie widzę" i nie wiem jak zastosować Composer?

Z wiersza poleceń teoretycznie poszło ok:

Using version ^6.0 for phpmailer/phpmailer
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Installing phpmailer/phpmailer (v6.0.5): Downloading (100%)

ale gdzie jest autoload?

Na localhost mam wiele stron:
localhost/strona1/
localhost/strona2/
localhost/strona3/
...
localhost/moja_domena/ (tu tworze formularz kontakt z phpmailer'a)
...
są też
localhost/Kohana/ (modyfikowałem skrypt w Kohana dla własnych potrzeb)
localhost/Symfony/ (jakiś czas temu zrobiłem tu pierwszy projekt w Symfony i jest tu katalog vendor i autoload.php
jest i katalog composer, ale jak się to ma do instalacji i strony w katalogu moja_domena?

Sorry, chyba tak dawno nie siedziałem w PHP, że Composer mnie powala na łopatki :|

Czy jeśli zrobię coś takiego

// PHPMailer
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require './lib/PHPMailer/src/Exception.php';
require './lib/PHPMailer/src/PHPMailer.php';
require './lib/PHPMailer/src/SMTP.php';

zamiast

//Load Composer's autoloader
require 'vendor/autoload.php';

phpmailer będzie funkcjonował poprawnie?

Napisany przez: viking 8.08.2018, 10:08:20

Skora odpalasz w katalogu moja_domena to chyba oczywiste że szukać należy w katalogu moja_domena. Możesz zrobić 2 sposobem.

Napisany przez: Malinaa 8.08.2018, 13:31:52

ale co odpalam w tym katalogu, chyba tu jest cały problem, bo nic nie odpalam w tym katalogu?

Napisany przez: nospor 8.08.2018, 14:05:41

To miales odpalic z katalogu projektu

Cytat(viking @ 7.08.2018, 13:03:00 ) *
Raczysz przeczytać cokolwiek z dokumentacji?

Z wiersza poleceń: composer require phpmailer/phpmailer, composer update


Napisany przez: Malinaa 10.08.2018, 11:16:31

Gdybym od początku wiedział, że "To" takie proste.

Pojawia się jednak nowy problem (w pliku "załadowanym" przez Composer):

Parse error: syntax error, unexpected '[' in .../lib/vendor/phpmailer/phpmailer/src/PHPMailer.php on line 288

Linia: public $SMTPOptions = [];
i tak z każdą kolejną linią z nawiasem kwadratowym?

Napisany przez: nospor 10.08.2018, 11:21:18

Widac odpalasz composer na baaaaaardzo starej wersji php. Wypadaloby troche zupgradowac

Napisany przez: Malinaa 10.08.2018, 11:33:43

Tak też myślałem, więc sprawdziłem, na serwerze mam ustawioną wersje 5.3.26
na localhost zainstalowana wersja to 5.6.30

Czy jeśli zmienię serwer na wersje 5.6.30 (taką jaką mam na localhost), czy to wystarczy?

Napisany przez: nospor 10.08.2018, 11:44:24

Tak, krotka notacja tablic zostala wprowadzona w php5.4
http://php.net/manual/en/migration54.new-features.php

ps: zas z tego co widze w dokumentacji phpMailer - tak, nie uzywam phpmailer ale potrafie zajrzec do dokumentacji tegoz w przeciwienstwie do ciebie tongue.gif - to phpMailer6 wymaga min php5.5

Napisany przez: Malinaa 10.08.2018, 12:57:50

Zmieniłem PHP na wersje 5.6 i wszystko śmiga.

Mam jeszcze jedno pytanie, używam

//Content
$mail->IsHTML(false);
$mail->Subject = "$subject";
$mail->Body = "$content";
// $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

Jeśli nie używam tu HTML'a jak rozumiem powinienem użyć
zamiast $mail->Body to $mail->AltBody, więc dlaczego z samym AltBody nie działa, jak powinno być?

P.S. Ostatnio używałem angielskiego pięć lat temu, nawet kiedy przeczytałem przeoczyłem,
że "TO" ma być odpalone w lokalizacji katalogu u mnie /lib smile.gif

Napisany przez: Pyton_000 10.08.2018, 13:05:15

Nie, masz użyć po prostu body. A co do angielskiego... no prosszzzz... https://translate.google.pl

Napisany przez: Malinaa 10.08.2018, 13:37:50

Ok. Translator też jest ok kopiuj - wklej smile.gif
Dzięki bardzo za pomoc.

Napisany przez: Pyton_000 10.08.2018, 13:39:44

A gdzie link do polityki prywatności?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)