Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [XAMPP] Problem z wysyłką maila w Windows
polhub
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 28.01.2014

Ostrzeżenie: (0%)
-----


Witam,
Mam zainstalowanego XAMPP Control Panel v.3.2.1. Utworzyłem plik a.php z następuja kodem:

  1. <html>
  2. <body>
  3. <?php
  4. $to = "xyz@gmail.com";
  5. $subject = "tescik";
  6. $message = "Wiadomosc testowa.";
  7. $header = "From:abc@gmail.com \r\n";
  8. $retval = mail ($to,$subject,$message,$header);
  9. if( $retval == true ) { echo "Wysłano."; } else { echo "NIE WYSŁANO."; }
  10. ?>
  11. </body>
  12. </html>


Skofigurowałem plik php.ini zgodnie z instrukcjami podanymi na http://stackoverflow.com/questions/1596537...-from-localhost

Odnalazłem sekcje [mail function] w pliku php.ini, skasowalem zawartość i wstawiłem

  1. SMTP=smtp.gmail.com
  2. smtp_port=587
  3. sendmail_from = abc@gmail.com
  4. sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"


Następnie wykonałem zmiany w pliku C:\xampp\sendmail\sendmail.ini
  1. [sendmail]
  2.  
  3. smtp_server=smtp.gmail.com
  4. smtp_port=587
  5. error_logfile=error.log
  6. debug_logfile=debug.log
  7. auth_username=abc@gmail.com
  8. auth_password=TAJNE
  9. force_sender=xyz@gmail.com


I sprawdzilem ze przy extension=php_openssl.dll w pliku php.ini nie ma średnika

Po wykonaniu wszytskich powyzszych zrestartowałem serwer i odpaliłem mój skrypt.
Niestety skrypt zwrócił "NIE WYSŁANO". Wiadomość nie doszła do adresata ERROR.LOG apache i php pusto. A w sendmail/error.log "15-03-05 19:10:00 : Connection Closed Gracefully."

Gdzie lezy problem? Jak znaleźć przyczynę źródłową problemu?

Ten post edytował polhub 5.03.2015, 19:21:17
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
NickOver
post
Post #2





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Spróbuj najpierw wpisać problem do googla. Po co zaśmiecać internety?
Ale żeby nie było że sam je zaśmiecam...
XAMPP ma domyślnie wyłączoną funkcje mail() i żeby ją włączyć musisz się trochę natrudzić tongue.gif Poszukaj w google. Poza tym nie uważasz ze wysyłanie maili z xamppa było by idealnym narzędziem do spamu?
Go to the top of the page
+Quote Post
polhub
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 28.01.2014

Ostrzeżenie: (0%)
-----


Szukałem w Google - dowodem jest link który jest podałem w poście
Funkcja mail jest włączona - gdyby była wyłączona to nie byłoby zapisu w logu sendmaila.

Teraz możesz się zastanowić kto "zaśmieca internety"

Ten post edytował polhub 6.03.2015, 07:41:40
Go to the top of the page
+Quote Post
NickOver
post
Post #4





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Ok, przepraszam. Niedoczytałem.
Weź wysyłanie maila w try catch'a i wrzuć to co wypluwa.
Go to the top of the page
+Quote Post
polhub
post
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 28.01.2014

Ostrzeżenie: (0%)
-----


Wynikiem poniższego skryptu jest komunikat - Przeszło!

  1. <?php
  2.  
  3. try {
  4. $to = "abc@gmail.com";
  5. $subject = "This is subject";
  6. $message = "This is simple text message.";
  7. $header = "From:xxx@gmail.com \r\n";
  8. mail ($to,$subject,$message,$header);
  9. echo 'Przeszło!';
  10. }
  11.  
  12. catch(Exception $e) {
  13. echo 'Message: ' .$e->getMessage();
  14. }
  15. ?>
Go to the top of the page
+Quote Post
robertpiaty
post
Post #6





Grupa: Zarejestrowani
Postów: 113
Pomógł: 18
Dołączył: 7.10.2007
Skąd: Pruszków

Ostrzeżenie: (0%)
-----


Czemu nie użyjesz jakiejś gotowej biblioteki PHP np. phpmailer. Używając rozszerzenia do wysyłki maili masz ten komfort że jeśli chcesz zmienić dane konta z którego wysyłasz maile to nie musisz zmieniać ustawienia serwera.


--------------------
Go to the top of the page
+Quote Post
polhub
post
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 28.01.2014

Ostrzeżenie: (0%)
-----


Cytat(robertpiaty @ 6.03.2015, 19:35:54 ) *
Czemu nie użyjesz jakiejś gotowej biblioteki PHP np. phpmailer. Używając rozszerzenia do wysyłki maili masz ten komfort że jeśli chcesz zmienić dane konta z którego wysyłasz maile to nie musisz zmieniać ustawienia serwera.


Skorzystalem z polecanej przez Ciebie biblioteki i skrypt umieszczony w folderze biblioteki tj. PHPMailer-master zwraca:

"Message could not be sent. Mailer Error: SMTP connect() failed."

Ustawienia:
  1. <?php
  2. require 'PHPMailerAutoload.php';
  3.  
  4. $mail = new PHPMailer;
  5.  
  6. //$mail->SMTPDebug = 3; // Enable verbose debug output
  7.  
  8. $mail->isSMTP(); // Set mailer to use SMTP
  9. $mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers
  10. $mail->SMTPAuth = true; // Enable SMTP authentication
  11. $mail->Username = 'tajne@gmail.com'; // SMTP username
  12. $mail->Password = 'tajne'; // SMTP password
  13. $mail->SMTPSecure = 'ssl'; // Enable TLS encryption, `ssl` also accepted
  14. $mail->Port = 587; // TCP port to connect to
Go to the top of the page
+Quote Post
NickOver
post
Post #8





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Nie moze polczyc sie z serwerem google. Na pewno wpisales poprawne dane?
W googlu znalazlem cos takiego KLIK
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 04:04