• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

wysyłanie wiadomości , bibloteka phpmailer

Object Storage Arubacloud
0 głosów
104 wizyt
pytanie zadane 27 maja 2021 w PHP przez mn130496 Gaduła (3,530 p.)

Witam 

Niedawno zacząłem uczyć się języka php. Chcę zrobić sobie system logowania i rejestracji użytkownika z aktywacją konta przez maila. do wysłania wiadomości chcę użyć biblioteki phpMailer. Wymyśliłem to sobie tak , że stworzę klasę  , która będzie przechowywać całą konfigurację serwera i funkcje  , która umożliwi wysłanie mi wiadomości  a potem za pomocą obiektu wyślę tą wiadomość niestety podczas tworzenia klasy wyskakuje mi błąd: syntax error, unexpected token "require", expecting "function" or "const" 

<?php
class wyslij
{
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\SMTP;
    use PHPMailer\PHPMailer\Exception;
    
    //Load Composer's autoloader
    require 'vendor/autoload.php';
     
    $mail = new PHPMailer(); // Stworzenie obiektu klasy php mailer
    $mail->isSMTP();

    //ustawienia servera 
   try {
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      //Enable verbose debug output
    $mail->isSMTP();                                            //wysyłanie za pomocą SMTP
    $mail->Host = 'smtp.mailtrap.io';                  
    $mail->SMTPAuth = true;                                   //włączenie uwierzytelniania smtp
    $mail->Username = '67aa0bdb86be7c';                     ////użytkownik smtp podajemu tutaj nasz adres email
    $mail->Password = 'aa9298ba83d5f2';                            
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;         //włączenie szyfrowania tls
    $mail->Port = 465;

    //odbiorcy
    $mail->setFrom('from@example.com', 'Mailer');         //nadawca
    $mail->addAddress('joe@example.net', 'Joe User');     //odbiorca
    $mail->addAddress('ellen@example.com');               //Name is optional
    $mail->addReplyTo('info@example.com', 'Information'); // Adres e-mail , na który zostanie wysłana odpowiedz
    $mail->addCC('cc@example.com');
    $mail->addBCC('bcc@example.com');

    /*załączniki
    $mail->addAttachment('/var/tmp/file.tar.gz');         //dodawanie załączników
    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    //Optional name
*/

    //Content
    $mail->isHTML(true);                                  //wysyłanie wiadomości w formacie html
    $mail->Subject = 'Here is the subject';    // temat wiadomości
    $mail->Body    = 'To jest tresc wiadomosci wyslanej przez php mailer <b>in bold!</b>'; //treśc wiadomości 
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; // treść wiadomości dla klijentów innych niż html

    $mail->send(); // wysłanie wiadomości
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
      
}

?> 

Czy ktoś może mi powiedzieć co robie nie tak?. Z góry dziękuję

1 odpowiedź

+1 głos
odpowiedź 27 maja 2021 przez Arkadiusz Waluk Ekspert (287,950 p.)
Ten kod jest niestety zupełnie niepoprawny składniowo. Wygląda trochę jakbyś próbował zgadnąć albo skleić losowe rzeczy, a to się raczej nie uda :)

Importy (z use) powinny być na górze pliku, przed deklaracją klasy. To samo require autoloadera. W samej klasie z kolei trzeba byłoby zrobić metodę i dopiero w niej można pisać jakiś kod. Następnie na zewnątrz klasy trzeba stworzyć jej obiekt i dopiero na nim daną metodę wywołać (chyba że użyjesz metody statycznej, to nie potrzeba obiektu).

W wersji lepszej dobrze jakby klasa była w osobnym pliku, który zawierałby tylko samą deklarację klasy, a następnie byłaby obsługiwana przez autoload Composera - tak jak teraz ładuje on klasy PHPMailera. Ale to już pytanie co i jak chcesz zrobić, bo jeśli tylko zrobisz jeden obiekt z jedną metodą, który wywoła powyższy kod, to robienie klasy to trochę sztuka dla sztuki. Ale oczywiście można to jakoś fajnie rozbudować też.
1
komentarz 27 maja 2021 przez mn130496 Gaduła (3,530 p.)
Rozumiem bardzo ci dziękuję za pomoc myślę , że już będę wiedział jak rozwiązać ten mój  problem. Jeszcze raz dziękuję.

Podobne pytania

0 głosów
0 odpowiedzi 249 wizyt
pytanie zadane 14 listopada 2020 w PHP przez Jarek1989 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 548 wizyt
0 głosów
1 odpowiedź 438 wizyt
pytanie zadane 25 lutego 2018 w PHP przez mi-20 Stary wyjadacz (13,190 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...