Problem z PHPMailer - pomocy :P

0

Siemka mam problem otóż UCZE SIĘ dopiero PHPMailera i mam problem ponieważ. Mam skrypyt który działa bez zarzutu oto on:

<?php

require __DIR__ . '/../vendor/autoload.php';

function send_mail($config)
{

	$mail = new PHPMailer;

	// $mail->SMTPDebug = 3;                               // Enable verbose debug output

	$mail->CharSet = 'UTF-8';
	$mail->isSMTP();                                      // Set mailer to use SMTP
	$mail->Host = 'smtp.mailtrap.io';  // Specify main and backup SMTP servers
	$mail->SMTPAuth = true;                               // Enable SMTP authentication
	$mail->Username = 'e04597e08e6cae';                 // SMTP username
	$mail->Password = 'f8f99e16166f44';                           // SMTP password
	$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
	$mail->Port = 2525;                                    // TCP port to connect to

	$mail->setFrom('[email protected]', 'Adrian');
	$mail->addAddress('[email protected]', 'Adrian');     // Add a recipient
	// $mail->addAddress('[email protected]');               // Name is optional
	$mail->addReplyTo($config->from_email, $config->from_name);
	// $mail->addCC('[email protected]');
	// $mail->addBCC('[email protected]');

	// $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
	// $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
	$mail->isHTML(true);                                  // Set email format to HTML

	$mail->Subject = $config->mail_subject;
	$mail->Body    = $config->mail_body;

	$html = new \Html2Text\Html2Text($mail->Body);
	$mail->AltBody = $html->getText();

	if(!$mail->send()) {
	    echo 'Message could not be sent.';
	    echo 'Mailer Error: ' . $mail->ErrorInfo;
	} else {
	    echo 'Message has been sent';
	}

}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

	$config = (object) [
		'from_email' => $_POST['from_email'],
		'from_name' => $_POST['from_name'],
		'mail_subject' => $_POST['mail_subject'],
		'mail_body' => $_POST['mail_body'],
	];
	send_mail($config);

}

?>

<form action="" method="POST">
	<input type="text" name="from_email" placeholder="Twój email">
	<input type="text" name="from_name" placeholder="Twoje imię">
	<input type="text" name="mail_subject" placeholder="Temat wiadomości">
	<input type="text" name="mail_body" placeholder="Treść wiadomości">
	<button type="submit">Wyślij</button>
</form>


To jest ten skrypt. Podane dane do smtp są ze strony mailtrap. Dostaje od nich takie oto właśnie dane i gdy je wpisuje program działa bez problemu wysyła mi email
TO TE DANE :
**SMTP
Host: smtp.mailtrap.io

Port: 25 or 465 or 587 or 2525

Username: e04597e08e6cae

Password: f8f99e16166f44

Auth: PLAIN, LOGIN and CRAM-MD5

TLS: Optional (STARTTLS on all ports)**

I teraz chce zrobić aby ten skrypt po prostu wysyłął email na inną skrzynkę która mam od hostingu OVH dostalem - kupiłem hosting + email od nich dane więc wpisuje je:

<?php

require __DIR__ . '/../vendor/autoload.php';

function send_mail($config)
{

	$mail = new PHPMailer;

	// $mail->SMTPDebug = 3;                               // Enable verbose debug output

	$mail->CharSet = 'UTF-8';
	$mail->Mailer = "smtp";
	$mail->isSMTP();                                      // Set mailer to use SMTP
	$mail->Host = 'SSL0.OVH.NET';  // Specify main and backup SMTP servers
	$mail->SMTPAuth = true;                               // Enable SMTP authentication
	$mail->Username = '[email protected]';                 // SMTP username
	$mail->Password = '*************';                           // SMTP password
	$mail->SMTPSecure = '';                            // Enable TLS encryption, `ssl` also accepted
	$mail->Port = '465';                                    // TCP port to connect to

	$mail->setFrom('[email protected]', 'Jakub');
	$mail->addAddress('[email protected]', 'Jakub');     // Add a recipient
	// $mail->addAddress('[email protected]');               // Name is optional
	$mail->addReplyTo($config->from_email, $config->from_name);
	// $mail->addCC('[email protected]');
	// $mail->addBCC('[email protected]');

	// $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
	// $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
	$mail->isHTML(true);                                  // Set email format to HTML

	$mail->Subject = $config->mail_subject;
	$mail->Body    = $config->mail_body;

	$html = new \Html2Text\Html2Text($mail->Body);
	$mail->AltBody = $html->getText();

	if(!$mail->send()) {
	    echo 'Jeżeli widzisz ten komunikat to znaczy że nie mogę wysłać tego formularza, przepraszam prosze o kontakt telefoniczny.';
	    echo 'Mailer Error: ' . $mail->ErrorInfo;
	} else {
	}

}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

	$config = (object) [
		'from_email' => $_POST['from_email'],
		'from_name' => $_POST['from_name'],
		'from_phone' => $_POST['from_phone'],
		'mail_subject' => $_POST['mail_subject']." OD: ".$_POST['from_name']." email: ".$_POST['from_email']." telefon: ".$_POST['from_phone'],
		'mail_body' => $_POST['mail_body']
	];
	send_mail($config);

}

I skrypt mieli i mieli i nic nie wysyla....
Od ovh dostałem ich hosting smtp oraz prot dane do skrzynki wpisuje tak
$mail->Username = '[email protected]'; - to jest założony email
$mail->Password = '*************'; - a to jest hasło do emailu

I mam prośbę jak możecie pomóc napiszcie tak żebym zrozumiał a nie jak wiele osób tutaj próbując pokazać swoją wiedzę pisze jak do doktora nominowanego z zakresu PHP i backedn :) Z góry wszystkim dziękuje

PS: NIE WIEM CZY TO MA ZNACZENIE ALE EMAIL DO FORUMLARZA JEST NA OVH A STRONA na razie STOI NA 000webhostapp.com

1

Zdaje się, że w 000webhostapp.com możliwość korzystania z SMTP jest dodatkowo płatna. Spróbuj już przenieść sobie ten projekt w docelowe miejsce.

0
jurek1980 napisał(a):

Zdaje się, że w 000webhostapp.com możliwość korzystania z SMTP jest dodatkowo płatna. Spróbuj już przenieść sobie ten projekt w docelowe miejsce.

No ale na mailtrap wysyła ;/

0
Kuba Czarnecki napisał(a):
jurek1980 napisał(a):

Zdaje się, że w 000webhostapp.com możliwość korzystania z SMTP jest dodatkowo płatna. Spróbuj już przenieść sobie ten projekt w docelowe miejsce.

No ale na mailtrap wysyła ;/

To że działa, gdy używasz smtp z mailtrap, nie znaczy, że będzie działać gdzieś indziej. Sprawdź sobie dane używając jakiegoś smtp testera, np: https://www.smtper.net/

0
serek napisał(a):
Kuba Czarnecki napisał(a):
jurek1980 napisał(a):

Zdaje się, że w 000webhostapp.com możliwość korzystania z SMTP jest dodatkowo płatna. Spróbuj już przenieść sobie ten projekt w docelowe miejsce.

No ale na mailtrap wysyła ;/

To że działa, gdy używasz smtp z mailtrap, nie znaczy, że będzie działać gdzieś indziej. Sprawdź sobie dane używając jakiegoś smtp testera, np: https://www.smtper.net/

Tak jak mówie dopiero się uczę więc pozwól że zapytam. Ja mam tym sprawdzić czy smtp maila z ovh tu bedzie działać tak ?

0
Kuba Czarnecki napisał(a):

Tak jak mówie dopiero się uczę więc pozwól że zapytam. Ja mam tym sprawdzić czy smtp maila z ovh tu bedzie działać tak ?

Podajesz tam dane dla smtp z hostingu, którego używasz. I powinno zdebugować połączenie.

0

screenshot-20191007200702.png

0

zrobilem email na szybko taki do testu i lipa

0

A zaznacz też te checkboxy. I przetestuj to sobie na danych z mailtrapa, skoro one działają.

0

screenshot-20191007204231.png
Tu chyba działa

0

Wystarczyło pokombinować z portem.

screenshot-20191007211204.png

0
serek napisał(a):

Wystarczyło pokombinować z portem.

screenshot-20191007211204.png
Oki sprawdzę do domu dzięki wielkie dam znać czy formularz wysyla

0

Dalej lip na tescie faktycznie działa ale jak wpisze w formularz już to wywala mi taki błąd: Jeżeli widzisz ten komunikat to znaczy że nie mogę wysłać tego formularza, przepraszam prosze o kontakt telefoniczny.Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

A tu jest konfiguracja phpmailera...
Zmieniłem ten port na 25 wszystko wpisane tak jak na testerze i lipa


<?php

require __DIR__ . '/../vendor/autoload.php';

function send_mail($config)
{

	$mail = new PHPMailer;

	// $mail->SMTPDebug = 3;                               // Enable verbose debug output

	$mail->CharSet = 'UTF-8';
	$mail->Mailer = "smtp";
	$mail->isSMTP();                                      // Set mailer to use SMTP
	$mail->Host = 'SSL0.OVH.NET';  // Specify main and backup SMTP servers
	$mail->SMTPAuth = true;                               // Enable SMTP authentication
	$mail->Username = '[email protected]';                 // SMTP username
	$mail->Password = 'kuba123443211';                           // SMTP password
	$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
	$mail->Port = '25';                                    // TCP port to connect to

	$mail->setFrom('[email protected]', 'Jakub');
	$mail->addAddress('[email protected]', 'Jakub');     // Add a recipient
	// $mail->addAddress('[email protected]');               // Name is optional
	$mail->addReplyTo($config->from_email, $config->from_name);
	// $mail->addCC('[email protected]');
	// $mail->addBCC('[email protected]');

	// $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
	// $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
	$mail->isHTML(true);                                  // Set email format to HTML

	$mail->Subject = $config->mail_subject;
	$mail->Body    = $config->mail_body;

	$html = new \Html2Text\Html2Text($mail->Body);
	$mail->AltBody = $html->getText();

	if(!$mail->send()) {
	    echo 'Jeżeli widzisz ten komunikat to znaczy że nie mogę wysłać tego formularza, przepraszam prosze o kontakt telefoniczny.';
	    echo 'Mailer Error: ' . $mail->ErrorInfo;
	} else {
	}

}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

	$config = (object) [
		'from_email' => $_POST['from_email'],
		'from_name' => $_POST['from_name'],
		'from_phone' => $_POST['from_phone'],
		'mail_subject' => $_POST['mail_subject']." OD: ".$_POST['from_name']." email: ".$_POST['from_email']." telefon: ".$_POST['from_phone'],
		'mail_body' => $_POST['mail_body']
	];
	send_mail($config);

}

?>

0

No to skoro dane do STMP działają, to sprawdź najpierw tego linka, który został wyświetlony. Ewentualnie masz coś z kodem nie tak jak trzeba. I masz najnowszą wersję biblioteki zainstalowaną?

EDIT:
Czemu port podajesz jako string?

I włącz se tego debuga w phpmailerze.

0

PHPMailer na pewno nie jest najnowszy bo wziąłem go z plików gotowych z kursu od ziomka jak tłumaczył jego działanie ponieważ jak zainstalowałem najnowszego to totalnie nic mi nie dzialalo jak robiłem wedlug jego instrukcji. No ale nie zmienia to faktu ze ten skrypt na mailtrapa wysyla ;/

  1. A port nie powinien być w tych ' ' ? na przykładach widziałem ze byl
0
Kuba Czarnecki napisał(a):

PHPMailer na pewno nie jest najnowszy bo wziąłem go z plików gotowych z kursu od ziomka jak tłumaczył jego działanie ponieważ jak zainstalowałem najnowszego to totalnie nic mi nie dzialalo jak robiłem wedlug jego instrukcji. No ale nie zmienia to faktu ze ten skrypt na mailtrapa wysyla ;/

  1. A port nie powinien być w tych ' ' ? na przykładach widziałem ze byl

Pewnie to nie zrobi różnicy, czy jest z, czy bez. Ale proponuję zawsze inty zapisywać jako inty, a nie stringi.

A co do biblioteki - staraj się zawsze używać najnowszej wersji, najlepiej LTE (jeśli jest taka możliwość). Dzięki temu masz pewność, że libka jest aktualna, a stare błędy są naprawione. I nie potrzebujesz kursu do tego... Do jest tak proste, że starczy zwykła dokumentacja.

0

Jeśli ciągle korzystasz z darmowego konta na darmowym hostingu: https://www.000webhost.com/forum/t/smtp-error-could-not-connect-to-smtp-host/19028
Maitrap jako usługa nie pozwalająca na prawdziwe rozsyłanie maili może być tam odblokowania.

0

A nie masz przypadkiem problemów z PORTAMI. Z tego co widzę to na OVH port 587 służy do wysyłania emaila BEZ żadnego szyfrowania a w PHP Mailer masz ustawione szyfrowanie TLS. Natomiast port 465 służy do wysyłki z szyfrowaniem.

0
leonpro778 napisał(a):

A nie masz przypadkiem problemów z PORTAMI. Z tego co widzę to na OVH port 587 służy do wysyłania emaila BEZ żadnego szyfrowania a w PHP Mailer masz ustawione szyfrowanie TLS. Natomiast port 465 służy do wysyłki z szyfrowaniem.

Już port ustawiłem na 25 bo w ogole tester smtp nie mogl sie polaczyc a kolega pokazal ze z portem 25 dziala :)

0

Ja tam na stronie OVH nie widziałem jako domyślnego portu 25. Jedynie port 465 z SSL i 587 bez SSL i tego bym się trzymał. Sam komunikat zwrotny z PHP Mailer krzyczy Tobie, że nie łączy się z serwerem SMTP.

Spróbuj ustawić w pliku taką konfigurację:

    $mail->Mailer = "smtp";
    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host = 'SSL0.OVH.NET';  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = '[email protected]';                 // SMTP username
    $mail->Password = 'kuba123443211';                           // SMTP password
    $mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
    $mail->Port = '465';                                    // TCP port to connect to
0

p.s informacyjnie: skrzynka e-mail (często-gęsto) musi być utworzony na serwerze ovh, inaczej może nie działać

0

Nie no, zakładam, że skrzynka [email protected] jest utworzona bo służy ona do autoryzacji na serwerze SMTP :)

0

Chodziło mi że host i mail muszą być na tym samym serwerze, bo inaczej czasami nie wysyła.

Ja do prostych pierdół używam Codeigniter'a, wysyła nawet localnie z xamppa bez problemu, plus prosta walidacja, spolszczone komunikaty itp. na początek styka.

0
leonpro778 napisał(a):

Ja tam na stronie OVH nie widziałem jako domyślnego portu 25. Jedynie port 465 z SSL i 587 bez SSL i tego bym się trzymał. Sam komunikat zwrotny z PHP Mailer krzyczy Tobie, że nie łączy się z serwerem SMTP.

Spróbuj ustawić w pliku taką konfigurację:

    $mail->Mailer = "smtp";
    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host = 'SSL0.OVH.NET';  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = '[email protected]';                 // SMTP username
    $mail->Password = 'kuba123443211';                           // SMTP password
    $mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
    $mail->Port = '465';                                    // TCP port to connect to

Jak wpisałem ten port to znowu https://www.smtper.net/ nie moze sie polaczyc wiec nawet nie wiem czy jest sens to zmieniac ;/ screenshot-20191009150248.png

0

Co się tak na tą stronę do testowania uczepiliście :D

Wykonałem TAKI kod:

<?php
    require 'phpmailer/class.phpmailer.php';

    function send_mail()
    {
        $mail = new PHPMailer;

        $mail->SMTPDebug = 3;                               // Enable verbose debug output

        $mail->CharSet = 'UTF-8';
        $mail->Mailer = "smtp";
        $mail->isSMTP();                                      // Set mailer to use SMTP
        $mail->Host = 'SSL0.OVH.NET';  // Specify main and backup SMTP servers
        $mail->SMTPAuth = true;                               // Enable SMTP authentication
        $mail->Username = '[email protected]';                 // SMTP username
        $mail->Password = 'kuba123443211';                           // SMTP password
        $mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
        $mail->Port = '465';                                    // TCP port to connect to

        $mail->setFrom('[email protected]', 'Jakub');
        $mail->addAddress('[email protected]', 'Jakub');     // Add a recipient
        // $mail->addAddress('[email protected]');               // Name is optional
        $mail->addReplyTo('[email protected]', 'Jakub');
        // $mail->addCC('[email protected]');
        // $mail->addBCC('[email protected]');

        // $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
        // $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
        $mail->isHTML(true);                                  // Set email format to HTML

        $mail->Subject = 'Test';
        $mail->Body    = 'Test message';
        if(!$mail->send()) {
            echo 'Jeżeli widzisz ten komunikat to znaczy że nie mogę wysłać tego formularza, przepraszam prosze o kontakt telefoniczny.';
            echo 'Mailer Error: ' . $mail->ErrorInfo;
        } else { echo 'OK';
        }

    }

    send_mail();

Działa w porządku. Co więcej, zalogowałem się na https://www.ovh.pl/mail/ (dane mam z tych co podałeś) i te emaile doszły bo je tam widzę :) Sprawdź sobie. Porty 465 i SSL są prawidłowe.

A, najważniejsze. Moja wersja PHP Mailera to 5.2.4 :)

0
leonpro778 napisał(a):

Co się tak na tą stronę do testowania uczepiliście :D

Wykonałem TAKI kod:

<?php
    require 'phpmailer/class.phpmailer.php';

    function send_mail()
    {
        $mail = new PHPMailer;

        $mail->SMTPDebug = 3;                               // Enable verbose debug output

        $mail->CharSet = 'UTF-8';
        $mail->Mailer = "smtp";
        $mail->isSMTP();                                      // Set mailer to use SMTP
        $mail->Host = 'SSL0.OVH.NET';  // Specify main and backup SMTP servers
        $mail->SMTPAuth = true;                               // Enable SMTP authentication
        $mail->Username = '[email protected]';                 // SMTP username
        $mail->Password = 'kuba123443211';                           // SMTP password
        $mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
        $mail->Port = '465';                                    // TCP port to connect to

        $mail->setFrom('[email protected]', 'Jakub');
        $mail->addAddress('[email protected]', 'Jakub');     // Add a recipient
        // $mail->addAddress('[email protected]');               // Name is optional
        $mail->addReplyTo('[email protected]', 'Jakub');
        // $mail->addCC('[email protected]');
        // $mail->addBCC('[email protected]');

        // $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
        // $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
        $mail->isHTML(true);                                  // Set email format to HTML

        $mail->Subject = 'Test';
        $mail->Body    = 'Test message';
        if(!$mail->send()) {
            echo 'Jeżeli widzisz ten komunikat to znaczy że nie mogę wysłać tego formularza, przepraszam prosze o kontakt telefoniczny.';
            echo 'Mailer Error: ' . $mail->ErrorInfo;
        } else { echo 'OK';
        }

    }

    send_mail();

Działa w porządku. Co więcej, zalogowałem się na https://www.ovh.pl/mail/ (dane mam z tych co podałeś) i te emaile doszły bo je tam widzę :) Sprawdź sobie. Porty 465 i SSL są prawidłowe.

A, najważniejsze. Moja wersja PHP Mailera to 5.2.4 :)

Juz mnie trafia z tym **** zobacz to jest moj kod

<?php

require 'vendor/autoload.php';

function send_mail()
    {
        $mail = new PHPMailer;

        $mail->SMTPDebug = 3;                               // Enable verbose debug output

        $mail->CharSet = 'UTF-8';
        $mail->Mailer = "smtp";
        $mail->isSMTP();                                      // Set mailer to use SMTP
        $mail->Host = 'SSL0.OVH.NET';  // Specify main and backup SMTP servers
        $mail->SMTPAuth = true;                               // Enable SMTP authentication
        $mail->Username = '[email protected]';                 // SMTP username
        $mail->Password = 'kuba123443211';                           // SMTP password
        $mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
        $mail->Port = '465';                                    // TCP port to connect to

        $mail->setFrom('[email protected]', 'Jakub');
        $mail->addAddress('[email protected]', 'Jakub');     // Add a recipient
        // $mail->addAddress('[email protected]');               // Name is optional
        $mail->addReplyTo('[email protected]', 'Jakub');
        // $mail->addCC('[email protected]');
        // $mail->addBCC('[email protected]');

        // $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
        // $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
        $mail->isHTML(true);                                  // Set email format to HTML

        $mail->Subject = 'Test';
        $mail->Body    = 'Test message';
        if(!$mail->send()) {
            echo 'Jeżeli widzisz ten komunikat to znaczy że nie mogę wysłać tego formularza, przepraszam prosze o kontakt telefoniczny.';
            echo 'Mailer Error: ' . $mail->ErrorInfo;
        } else { echo 'OK';
        }

    }

    send_mail();

TO SĄ MOJE PLIKI

screenshot-20191019163408.png
screenshot-20191019163415.png
screenshot-20191019163423.png
screenshot-20191019163428.png

I wywala błąd....

screenshot-20191019163451.png

Mam pobrany najnowszy phpmailer już i dalej nic....

0

Poczytaj sobie o namespace i use. Nie mam pewności, że o to chodzi (ani tym bardziej czasu by to zlukać), zgaduję tylko.

Btw, super, że chwalisz się nielegalnym Windowsem xD

0
serek napisał(a):

Poczytaj sobie o namespace i use. Nie mam pewności, że o to chodzi (ani tym bardziej czasu by to zlukać), zgaduję tylko.

Btw, super, że chwalisz się nielegalnym Windowsem xD
ciiii

0
serek napisał(a):

Btw, super, że chwalisz się nielegalnym Windowsem xD

Nielegalny prozaicznie nie wyświetla takiego komunikatu, bo jest "aktywowany" loaderem ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1