Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]konfiguracja serwera do maila
Forum PHP.pl > Forum > Przedszkole
drobny2992
Cześć Wszystkim

Mam poważny problem z moim serwerem i nie mogę z tego wybrnąć. Szukałem info w google ale nic konkretnego nie znalazłem. Otóż, gdy chcę wysłać maila z jakiegoś formularza to wyświetla mi się błąd:

Cytat
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\WebServ\httpd-users\koniec.php on line 14
. A oto skrypt:

Kod
<?
$nazwa=$_POST['nazwa'];
$adres=$_POST['adres'];
$komentarz=$_POST['komentarz'];
$adresdo='przykład@wp.pl';

$mail= 'Imie i nazwisko' . $nazwa. "/n";
        'Adres maila '. $adres. "/n";
        'Komentarz' . $komentarz. "/n";
        
$adresod='mój e-mail@serwer.pl';
$temat='Komentarz pzesłany mejlem';
mail ($adresdo,  $temat , $mail, $adresod);

?>


Wg mnie jest to zła konfiguracja serwera ale nie wiem więc proszę Was o radę. Używam serwera Webserv.
nospor
no komunikat bledu mowi ci, ze probujesz wyslac cos z serwera mailowego na localhost czyli na twoim kompie. Masz na swoim kompie postawiony serwer pocztowy? Nie? to postaw winksmiley.jpg

Jak chcesz wyslas skads indziej, to tez masz napisane, bys zmienil to w php.ini albo poprzez ini_set().

A tak wogole to polecam ci jakąś klase do maili, np. PHPMailer. Bedziesz mogl bez problemu sobie tam wszystko skonfigurowac i wysylac maila z dowolnej skrzynki do ktorej masz dostep
drobny2992
Czyli muszę zainstalować np Mozillę thunderbird tak?? a co bym musiał zmienić w php.ini?questionmark.gif Sorki może to są banalne pytania ale jestem początkującym w php.
nospor
thunderbird to klient pocztowy a nie serwer.
jak nie wiesz jaka jest roznica miedzy jednym a drugim to doczytaj w google. tam naprawde masz to opisane.
drobny2992
No racja. A jaki serwer mailowy polecasz?questionmark.gif
nospor
interia, gmail, onet, i masa innych. Wystarczy ze masz u nich skrzynke i juz mozesz od nich bez problemu wysylac maile (przy uzyciu np. klasy PHPMailer, o ktorej juz wspominalem)
drobny2992
Mam ten phpMailer, mam pocztę na wp ale niestety nie wiem co dalej :/
nospor
na stronie PHPMAiler w dokumentacji i w dostepnych przykladach masz wszystko po kolei opisane.
drobny2992
Cytat
Jak chcesz wyslas skads indziej, to tez masz napisane, bys zmienil to w php.ini albo poprzez ini_set().


A co trzeba zmienić w typ pliku php.ini?questionmark.gif
nospor
czy naprawde za kazdym razem musze ci mowic bys zajrzal do manuala/dokumentacji/google?

http://pl.php.net/manual/pl/book.mail.php
a tam masz link do:
http://pl.php.net/manual/pl/mail.configuration.php
drobny2992
Kurdę chyba mi coś nie wychodzi bo nadal nie działa nadal to samo:/
jmail
a serwer zrestartowałeś w sensie Apache? mad.gif
Sam z siebie nie zaczyta nowej konfiguracji :/

znajdź w php ini taki wpis

  1.  
  2. [mail function]
  3. ; For Win32 only.
  4. SMTP = localhost
  5. smtp_port = 25
  6.  


i zamień na

  1.  
  2. [mail function]
  3. SMTP = TWÓJ_DOSTAWCA
  4. smtp_port = 25
  5. username = UŻYTKOWNIK
  6. password = HASŁO
  7.  


zamień TWÓJ_DOSTAWCA na serwer poczty wychodzącej na przykład: poczta.onet.pl - tylko na swój zamień.

Po tym jak już to ustawisz zrestartuj Apache'a i gotowe
drobny2992
jmail ogromnie Ci dziękuję za tą odpowiedź. Pomogło. Ale kolejny błąd.
Cytat
Warning: mail() [function.mail]: SMTP server response: 553 SMTP auth required (#5.7.1) / Wymagana autoryzacja SMTP - zobacz strone: http://poczta.wp.pl/autoryzacja in C:\Program Files\WebServ\httpd-users\koniec.php on line 13


Wiem że chodzi o autoryzację SMTP zrobiłem tak jak podano na stronie która jest tam wymieniona. Ale nadal nic zrobiłem tą autoryzację na programie MS Outlook 2003.
marian2299
Jeśli korzystasz z phpmailer, to :
  1. $mail->SMTPAuth = true;
drobny2992
A jeśli nie korzystam z tego phpmailer?questionmark.gif
marian2299
Skocz z mostu.

Przecież wujek google prawdę zna, wyszukiwarka forum php.pl też winksmiley.jpg.
drobny2992
Kurdę szukam cały czas i nic konkretnego nie mogę znaleźć sad.gif
nospor
mail() nie uwzględnia autentykacji. nie wiem skad jmail wytrzasnal to:
username = UŻYTKOWNIK
password = HASŁO

jak chcesz z autentykacją to uzyj np. PHPMailer winksmiley.jpg
drobny2992
Ale ja czegoś tutaj nie rozumiem. Mam pocztę na wp.pl i muszę instalować jakieś inne programy po to żeby wysyłać maile z formularzy?? Bo jeśli nie będę używał tego phpmailera to nie będzie się wiadomość wysyłać?? A w tym pliku php.ini mam ustawione tak:
Cytat
[mail function]
SMTP = smtp.wp.pl
smtp_port = 25
username = adres@wp.pl
password = drobny2992


Nie wiem już całkowicie o co chodzi z tymi mailami. Jak dotąd nauka mi szła super ale utkwiłem w martwym punkcie i nie wiem jak z tego wybrnąć sad.gif
marian2299
Bożesz. Daje instrukcję ostatni raz!

Wrzuć to do swojej strony: http://fffiezet.yoyo.pl/phpmailer.zip .

A oto kod :
  1. <?
  2. require("phpmailer/class.phpmailer.php");
  3. $mail = new PHPMailer();
  4.  
  5. $mail->PluginDir = "phpmailer/";
  6. $mail->From = "NASZE@KONTO"; //adres naszego konta
  7. $mail->FromName = "phpMailer tester";//nagłówek From
  8. $mail->Host = "NASZ.SERWER.SMTP";//adres serwera SMTP
  9. $mail->Mailer = "smtp";
  10. $mail->Username = "tester@KONTO";//nazwa użytkownika
  11. $mail->Password = "HASLO";//nasze hasło do konta SMTP
  12. $mail->SMTPAuth = true;
  13. $mail->SetLanguage("en", "phpmailer/language/");
  14.  
  15. $mail->Subject = "Mail testowy";//temat maila
  16.  
  17. // w zmienną $text_body wpisujemy treść maila
  18. $text_body = "Cześć, chyba phpMailer działa \n\n";
  19. $text_body .= "Na zawsze Twój, \n";
  20. $text_body .= "PHPMailer";
  21.  
  22. $mail->Body = $text_body;
  23. // adresatów dodajemy poprzez metode 'AddAddress'
  24. $mail->AddAddress("jurek@gdziestam.pl","Jurek");
  25. $mail->AddAddress("franek@gdziestam.pl","Franek");
  26.  
  27. if(!$mail->Send())
  28. echo "There has been a mail error <br>";
  29. echo $mail->ErrorInfo."<br>";
  30.  
  31. // Clear all addresses and attachments
  32. $mail->ClearAddresses();
  33. $mail->ClearAttachments();
  34. echo "mail sent <br>";
  35.  
  36. ?>
drobny2992
Dzięki działa ale jeszcze jeden problem :
Cytat
Parse error: syntax error, unexpected T_REQUIRE in C:\Program Files\WebServ\httpd-users\koniec.php on line 4
jmail
no dobrze by było jeszcze pokazać kod tego pliku. bo tak to sobie mogę na sufit popatrzeć i wymyślić, że gdzieś nie postawiłeś średnika

nospor - a u mnie działa ^^ tylko że teraz się dopiero dopatrzyłem, że ja nadpisuję funkcję mail swoją własną biggrin.gif - za zamieszanie przepraszam winksmiley.jpg
drobny2992
Racja dzięki znalazłem błąd biggrin.gif A mam jeszcze jedną sprawę
Cytat
require("phpmailer/class.phpmailer.php");

$mail = new PHPMailer();

$mail->PluginDir = "phpmailer/";

$mail->FromName = "phpMailer tester";//nagłówek From

$mail->Host = "smtp.wp.pl";//adres serwera SMTP

$mail->Mailer = "smtp";

$mail->SMTPAuth = true;

$mail->SetLanguage("en", "phpmailer/language/");



$mail->Body = $text_body;

// adresatów dodajemy poprzez metode 'AddAddress'

$mail->AddAddress("adres@wp.pl","Franek");

To zawsze tak ma być dodawane, jeżeli korzystam z tego phpmailera tak?? A jeżeli wykupię jakiś serwer i umieszczę tam swoją stronkę to ten phpmailer też będę musiał tam umieścić?? Aha i jeszcze jedno dlaczego wiadomość jest umieszczana jako spam na serwerze pocztowym??
marian2299
Może to wynikać z `dziwnego tematu` czy coś.
A phpmailer będziesz musiał też tam umieścić.
drobny2992
Ok wielkie dzięki bardzo mi pomogliście biggrin.gif a możecie mi jeszcze powiedzieć co ten fragment kodu oznacza bo nie mogę się dokładnie połapać tiredsmiley.gif
Cytat
require("phpmailer/class.phpmailer.php");

$mail = new PHPMailer();

$mail->PluginDir = "phpmailer/";

$mail->SMTPAuth = true;

$mail->SetLanguage("en", "phpmailer/language/");
marian2299
$mail->PluginDir = "phpmailer/"; //miejsce klasy

$mail->SMTPAuth = true; //autoryzacja SMTP

$mail->SetLanguage("en", "phpmailer/language/"); //język
drobny2992
Ok dzięki biggrin.gif Ale mam jeszcze jedno i mam nadzieję ostatnie pytanie: Co zrobić jeżeli chcę zrobić tak jak tutaj jest http://www.ygreg.com/pokaz.php/php3. Ja zrov\biłem tak ale serwer wywala błąd:
Cytat
BŁĄD 404
Podany w zapytaniu adres nie został odnaleziony na tym serwerze.



Cytat
  1. <?
  2. require("phpmailer/class.phpmailer.php");
  3. $mail = new PHPMailer();
  4. $mail->PluginDir = "phpmailer/";
  5. $mail->From = "NASZE@KONTO"; //adres naszego konta
  6. $mail->FromName = "phpMailer tester";//nagłówek From
  7. $mail->Host = "NASZ.SERWER.SMTP";//adres serwera SMTP
  8. $mail->Mailer = "smtp";
  9. $mail->Username = "tester@KONTO";//nazwa użytkownika
  10. $mail->Password = "HASLO";//nasze hasło do konta SMTP
  11. $mail->SMTPAuth = true;
  12. $mail->SetLanguage("en", "phpmailer/language/");
  13. $mail->Subject = "Mail testowy";//temat maila
  14. // w zmienną $text_body wpisujemy treść maila
  15. $text_body = "$tresc \n\n";
  16. $mail->Body = $text_body;
  17. // adresatów dodajemy poprzez metode 'AddAddress'
  18. $mail->AddAddress("$email","Mariusz");
  19. if(!$mail->Send())
  20. echo "There has been a mail error <br>";
  21. echo $mail->ErrorInfo."<br>";
  22. // Clear all addresses and attachments
  23. $mail->ClearAddresses();
  24. $mail->ClearAttachments();
  25. echo "mail sent <br>";
  26. ?>

A teraz plik z formularzem:
Cytat
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-2">
<META NAME="Description" CONTENT="[ Opis dokumentu ]">
<META NAME="Author" CONTENT="[ Autor dokumentu ]">
<META NAME="Generator" CONTENT="EdHTML">
<TITLE>[ Tytul dokumentu ]</TITLE>
</HEAD>
<BODY>

<FORM ACTION= ~koniec.php3 METHOD=gET>
Podaj adres email <INPUT TYPE="TEXT" NAME="email"><BR>
Wpisz tekst wiadomości email<TEXTAREA NAME="tresc""></TEXTAREA><BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>


Proszę Was znów o pomoc tongue.gif
cisu
Witam, dołączę się do tematu, ponieważ u mnie wystąpił nieopisany dotąd błąd:
  1. SMTP Error: The following recipients failed: a@b.pl

Zamiast tego a@b.pl mam poprawny adres e-mail, wszystko zrobiłem wg. instrukcji i nie działa ;[

Dane do tego pliku przesyłam formularzem i podstawiam, kod
  1. <?
  2.  
  3. require("phpmailer/class.phpmailer.php");
  4. $mail = new PHPMailer();
  5.  
  6. $mail->PluginDir = "phpmailer/";
  7. $mail->From = "from"; //adres naszego konta
  8. $mail->FromName = "xxx";//nagłówek From
  9. $mail->Host = "host";//adres serwera SMTP
  10. $mail->Mailer = "smtp";
  11. $mail->Username = "user";//nazwa użytkownika
  12. $mail->Password = "pass";//nasze hasło do konta SMTP
  13. $mail->SMTPAuth = true;
  14. $mail->SetLanguage("en", "phpmailer/language/");
  15.  
  16. $mail->Subject = $email_temat;//temat maila
  17.  
  18. // w zmienną $text_body wpisujemy treść maila
  19. $text_body = $_POST['tresc'];
  20.  
  21. $mail->Body = $text_body;
  22. // adresatów dodajemy poprzez metode 'AddAddress'
  23. $mail->AddAddress($email_adres,"");
  24.  
  25. if(!$mail->Send())
  26. echo "Wykryto błedy przy wysyłaniu maila:
  27. ";
  28. echo $mail->ErrorInfo."
  29. ";
  30.  
  31. // Clear all addresses and attachments
  32. $mail->ClearAddresses();
  33. $mail->ClearAttachments();
  34. echo "Wiadomość została wysłana.
  35. ";
  36.  
  37. ?>


Co więcej, najpierw wyświetla mi błą a potem wiadomość o wysłaniu emaila.

Proszę o pomoc
jmail
końcówkę zamień na

  1.  
  2. if(!$mail->Send()){
  3. echo "Wykryto błedy przy wysyłaniu maila: ";
  4. echo $mail->ErrorInfo."";
  5. }
  6. else{
  7. echo "Wiadomość została wysłana.";
  8. }
  9.  
  10. $mail->ClearAddresses();
  11. $mail->ClearAttachments();
  12.  



drobny > WTFIT

  1.  
  2. <FORM ACTION= [b]~koniec.php3[/b] METHOD=gET>
  3.  


Twój serwer w ogóle obsługuje jeszcze rozszerzena php3 ?

zamień na

  1.  
  2. <FORM ACTION="~koniec.php3" METHOD=gET>
  3.  


o ile plik z "falką" istnieje
cisu
Zmieniłem język na polski i tą poprawkę dałem, teraz mi wyświetla że odbiorcy są nieprawidłowi.
Nie wiem o co chodzi, na gmail.com poczta miała iść i nic ;/

A co do serwera do localhost na webservie 2.0, obsługuje php3
jmail
cisu a możesz dać komunikat błędu i adres na który próbujesz wysłać?

a co do php3 to drobnego pytałem
cisu
  1. Błąd SMTP: Następujący odbiorcy są nieprawidłowi: cismat@gmail.com


Próbowałem tak
  1. $mail->AddAddress("$email_adres","$email_adres");

i tak
  1. $mail->AddAddress("$email_adres","");


I nie działa, a co do poczty to mam konto na 8p.pl.
jmail
a spróbuj tak

  1.  
  2. $mail->AddAddress($email_adres,"");
  3.  


mail jest poprawny. a na pewno poprawnie dane do logowania do serwera SMTP wpisałeś?
cisu
Ok już działa ;] Wszystko co musiałem zrobić to utworzyć nową skrzynkę bo z tą był problem. THX za pomoc ;]
jmail
porada dla Ciebie - nie wstawiaj zmiennych w cudzysłowia to zbędne i zmuszasz serwer do analizowania stringa. i nie dodawaj pustego stringa na koniec zmiennej w postaci $zmienna."" bo to bez sensu - znowu niepotrzebna operacja konkatenacji
cisu
A co zrobić żeby phpMailer nie zamieniał html na tekst? Ja mam ten formularz na stronie dla admina i tylko ja mogę z niego coś wysyłać i takie zabezpieczenie mi nie jest potrzebne. Próbowałem wstawiać // przed odpowiednimi liniami w pliku class.html2text.php, ale nie działa.
jmail
w class.phpmailer.php

znajdź

public $ContentType = 'text/plain';


i zamień na


public $ContentType = 'text/html';
drobny2992
Dzięki nie zauważyłem że tam jest php3 hehe blinksmiley.gif Działa. A nie wiem dlaczego ale każdą wiadomość mi umieszcza w folderze spam sciana.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.