Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wysyłanie maila ze strony bez użycia programu pocztowego
Cosi
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 4.09.2002

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


Witam mam mały/duży problem dotyczy tego iż posiadam n/w skrypt który służy do wysyłania maila ze strony www bez udziału programu pocztowego. Po wstawieniu na strone wpisaniu wszystkiego/wypełnieniu i kliknieciu na wyślij dostaje informacje ze wiadomość została wysłana i tu zaczyna sie problem - nie dostaje wiadomosci sad.gif bardzo prosil bym o pomoc jak sobie z tym poradzić ewentualnie jak skonfigurowac serwer lub php nie mam za dużego doświadczenia w obsłudze serwera wiec proszę o cierpliwość i wyrozumiałość smile.gif.

[php:1:769311981d]<?php
//sprawdzamy, czy zmienna $submit jest pusta
if (empty($submit))
{
//wyświetlamy formularz
echo "<table border="0"><form method="post">
<tr>
<td>Treść wiadomości</td>
<td><textarea name="tresc" style="width: 250px; height: 100px"></textarea></td>
</tr>
<tr>
<td>Imię, nazwisko lub nick</td>
<td><input type="text" name="imie" style="width: 250px"></td>
</tr>
<tr>
<td>Adres e-mail</td>
<td><input type="text" name="email" style="width: 250px"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="submit" value="Wyślij">&nbsp;
<input type="reset" value="Od nowa"></td></form>
</tr>
</table>";
}
//sprawdzamy, czy zmienne przesłane z formularza nie są puste
elseif (!empty($tresc) && !empty($imie) && !empty($email)){
//jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
//zmienna $message zawiera treść wiadomości
$message = "Treść wiadomości:n$trescnWysłał: $imiene-mail: $email";
//zmienna $header zawiera przede wszystkim adres zwrotny
$header = "From: $imie <$email>";
//funkcja mail() za pomocą której wiadomość zostanie wysłana
mail("adres@domena.pl","Wiadomosc ze strony WWW","$message","$header");
//wyświetlenie komunikatu w przypadku powodzenia smile.gif
echo "<div align="center"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
}
//lub w przypadku nie wypełnienia formularza do końca
else echo "<div align="center"><span style="color: #FF0000">Wypełnij wszystkie pola formularza!</span><br><br><input type="button" onclick="history.back();" value="<< Cofnij"></div>"
?> [/php:1:769311981d]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
hub3rt
post
Post #2





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 19.09.2003
Skąd: Białystok

Ostrzeżenie: (10%)
X----


biggrin.gif mi przydalby sie taki skrypt...ale jak mowisz ze cos szwankuje...
Go to the top of the page
+Quote Post
adwol
post
Post #3





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

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


Ponieważ widzę, że korzystasz z wbudowanej funkcji mail mam dwie uwagi:
1. Sprawdzaj co zwraca ta funkcja, czyli czy napewno udaje się jej wysłać (gdy zwróci true).
2. Nie wiem co masz na myśli mówiąc, że skrypt wysyła pocztę bez udziału programu pocztowego, ale funkcja mail zawsze wymaga czegoś co odbierze i skolejkuje tą pocztę. W przypadku uniksów uruchamia proces sendmaila na lokalnej maszynie, któremu przekazuje wiadomość. W przypadku windowsa wymaga serwera SMTP który dostanie wiadomosć. Sprawdź czy masz to odpowiednio skonfigurowane w php.ini i czy rzeczywiście jest coś co odbierałoby pocztę.
Go to the top of the page
+Quote Post
Cosi
post
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 4.09.2002

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


Adwol: wiec jest tak posiadam serwer na FreeBSD który zainstalował mi kolega (ja niestety nie jestem jeszcze na takim etapie wiedzy) i posiadam na nim program pocztowy Postfix. Prosisz żebym zobaczył co zwraca funkcja "true" hmm nie wiem jak mam to sprawdzić (gdzie). Odnośnie punktu 2 mowiąc bez udziału programu pocztowego miałem na myśli to że osoba wysyłajaca nie musi posiadac np. Outloka gdyż jest wiekszość skryptow owszem, ale po kliknięciu wyślij otzrymujesz info ze mail zostanie wysłany przy pomocy twojego programu pocztowego. Dlatego chciałbym żeby można było wysłac bez udziału tego programu. Co do konfiguracji php.ini to siż zgadzam tylko czego mam tam szukac jakiego wpisu i co wpisac lub zmienic ? bo tego nie wiem. Sorki ale poproszę o cierpliwość i zrozumienie przegladalem i opisy postfixa i php ale niestety setki informacji a niewiele konkretów:( .
Go to the top of the page
+Quote Post
adwol
post
Post #5





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

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


Cytat
Prosisz żebym zobaczył co zwraca funkcja "true" hmm nie wiem jak mam to sprawdzić (gdzie).

Źle mnie zrozumiałeś. Nie chodziło mi o funkcję true tylko o to czy funkcja mail zwraca wartość true, innymi słowy coś takiego:
[php:1:46cd3c572d]<?php
if (mail("adres@domena.pl","Wiadomosc ze strony WWW","$message","$header")) {
// udało się wysłać
} else {
// nie udało się
}
?>[/php:1:46cd3c572d]
Cytat
Co do konfiguracji php.ini to siż zgadzam tylko czego mam tam szukac jakiego wpisu i co wpisac lub zmienic ? bo tego nie wiem.

A tu zaglądałeś? Skoro masz BSD i Postfixa to powinieneś mieć plik /usr/sbin/sendmail lub /usr/lib/sendmail. Zobacz, więc, czy masz w php.ini linijkę tej postaci:
Kod
sendmail_path = /usr/sbin/sendmail


Jeśli PHPowa funkcja mail stwierdzi, że powiodło się wysłanie to wtedy trzeba będzie przyjrzeć się samemu Postfixowi.
Go to the top of the page
+Quote Post
Cosi
post
Post #6





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 4.09.2002

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


Wiec tak mail zwraca wartosc true ze "wiadomość zostala wyslana na adres xxx@xxx.pl " ale nadal cisza nic nie mam w poczcie co do plikow to w usr/sbin/ jest plik @sendmail oraz sendmail.old co do kodu: sendmail_path= nic nie bylo wpisane wiec teraz wpisalem =/usr/sbin/sendmail no i niestety nadal bez efektow sad.gif
Go to the top of the page
+Quote Post
adwol
post
Post #7





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

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


Cytat
Wiec tak mail zwraca wartosc true ze "wiadomość zostala wyslana na adres xxx@xxx.pl " ale nadal cisza nic nie mam w poczcie co do plikow to w usr/sbin/ jest plik @sendmail oraz sendmail.old co do kodu: sendmail_path=   nic nie bylo wpisane wiec teraz wpisalem =/usr/sbin/sendmail no i niestety nadal bez efektow sad.gif

W takim razie poproś kolegę, który Ci instalował system o przyjrzenie się sprawie. Ja (ani pewnie nikt z forum) nie będzie Ci w stanie pomóc ,,zdalnie'' bez zajrzenia do logów, potestowania i obejrzenia ,,żywego organizmu'', a jedynie na podstawie Twoich opisów, jakkolwiek byłyby one dokładne. Po prostu często diabeł siedzi w szczegółach, a skoro od strony PHPa wszystko jest ok (mail jest wysyłany) to należy pogrzebać w Postfixie, a tu przyczyn może być wiele.
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: 20.08.2025 - 06:59