Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: funkcja mail PROBLEM
Forum PHP.pl > Forum > PHP
kocu
witam wiem ze to kolejny nudny temat z rzedu funkcji mail przejzalem je chyba wszystkie na tym forum ale zaden nie pomogl mi rozwiazac problemu a mianowicie nie moge wyslac wiadomosci ..korzystam z polaczenia flasha i php lecz glowny problem wydaje mi sie ze tkwi w kodzie php lub konfiguracji serwera



  1. <?php
  2.  
  3. require("class.phpmailer.php");
  4. $mail = new PHPMailer();
  5. $mail->PluginDir = "localhos/flashphp/ch02/phpmailer/";
  6.  
  7. //adres naszego konta
  8. $mail->From = "formadm@o2.pl"; 
  9.  
  10. //adres serwera SMTP
  11. $mail->Host = "poczta.o2.pl";
  12.  
  13. $mail->Mailer = "smtp";
  14. $mail->SMTPAuth = true;
  15.  
  16. //nazwa użytkownika
  17. $mail->Username = "login";
  18.  
  19.  
  20. //nasze hasło do konta SMTP
  21. $mail->Password = "pass";
  22.  
  23. $mail->SetLanguage("en", "phpmailer/language/");
  24.  
  25.  
  26. $subject = 'Formularz ze strony flash';
  27.  
  28. // Stwórz zawartość wiadomości ze zmiennych przechowywanych w tablicy POST
  29.  
  30. $message = 'Od: '.$_POST['from']."nn";
  31. $message .= 'Email: '.$_POST['email']."nn";
  32. $message .= 'adres: '.$_POST['snail']."nn";
  33. $message .= 'telefon: '.$_POST['phone']."nn";
  34. $message .= 'Komentarze: '.$_POST['comments'];
  35.  
  36.  
  37.  
  38.  
  39. // aby odbiorca mógł odpowiedzieć bezpośrednio na Twój adres dodaj dodatkowe nagłó
    wki wiadomości
  40.  
  41. $additionalHeaders = "Reply-To: $_POST[email]";
  42.  
  43.  
  44. // wyślij wiadomość
  45.  
  46.  
  47. $OK = mail($mail, $subject, $message, $additionalHeaders);
  48.  
  49. // niech Flash odbierze wiadomość zwrotną
  50.  
  51. echo $ERRORS;
  52. if ($OK) {
  53. echo 'sent=OK';
  54. }
  55. else {
  56. echo 'sent=failed&reason='. urlencode('Prawdopodobnie wystąpił problem z serwerem. Spróbuj wysłać wiadomość później');
  57. }
  58. ?>



korzystam z ksiazki "PODSTAWY Flash i PHP5" David'a Powers'a


stawiam to na localhoscie na serwerze Apache 2.2 plik kocfiguracyjny php (php.ini) wyglada tak (jezeli chodzi o mail function) :

Cytat
[mail function]
; For Win32 only.
SMTP = localhost //tutaj ma byc nazwa localhost czy nazwa serwera smtp prubowalem i tak i tak
smtp_port = 25

; For Win32 only.
sendmail_from = formadm@o2.pl



z gory dzieki za pomoc

Pozdr.
MatheW
nie wydaje Ci sie to teoche idiotyczne, ze najpierw uzywasz klasy phpmailer a potem funkcji mial?

CODE

require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->PluginDir = "localhos/flashphp/ch02/phpmailer/";

//adres naszego konta
$mail->From = "formadm@o2.pl";

//adres serwera SMTP
$mail->Host = "poczta.o2.pl";

$mail->Mailer = "smtp";
$mail->SMTPAuth = true;

//nazwa użytkownika
$mail->Username = "login";


//nasze hasło do konta SMTP
$mail->Password = "pass";

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


$subject = 'Formularz ze strony flash';

// Stwórz zawartość wiadomości ze zmiennych przechowywanych w tablicy POST

$message = 'Od: '.$_POST['from']."\n\n";
$message .= 'Email: '.$_POST['email']."\n\n";
$message .= 'adres: '.$_POST['snail']."\n\n";
$message .= 'telefon: '.$_POST['phone']."\n\n";
$message .= 'Komentarze: '.$_POST['comments'];
$mail->body=$message;
$mail->AddAdress($_POST['email']);
if($mail->Send()) {
echo 'sent=OK';
}
else {
echo 'sent=failed&reason='. urlencode('Prawdopodobnie wystąpił problem z serwerem. Spróbuj wysłać wiadomość później');
}
kocu
niestety nadal nic nie dziala :/
siemakuba
A czy dane do autoryzacji serwera SMTP podałeś prawidłowe? Musisz podać adres, port, login i hasło do autoryzacji działającego serwera SMTP.

Z pewnością masz jakieś konto mailowe, wejdź w jego ustawienia i raczej znajdziesz tam wszystkie potrzebne dane.

pozdr.
thornag
Moze najpierw przetestuj skrypt bez korzystania z smtp, jesli bedzie dzialac wtedy poszukaj bledy przy SMPT, jesli nie bedzie dzialalo, wyswietl blad phpMailera i pokaz powinien wiele powiedziec.
kocu
a moze zna ktos jakies konta mailowe ktore nie wymagaja uwierzytelnienia na SMTP ?

czy moze jest u mnie taki problem ze mam zablokowany jakis port przez ktory wiadomosc ma wyjsc z mojego kompa kurde siedze przy tym juz 3 dzien non stop prubuje wszystkiego i nic mi nie idzie jakiego kolwiek skryptu bym uzywal to i tak nie przynosi efektu (formularz w html czy php) ... I need HELP exclamation.gif!
thornag
A sprobowales wysylania bez uzycia smtp ? Przeciez php ma wbudowany mechanizm do wysylania z ktorego korzysta php mailer jesli sie mu nie poda SMTP, przetestuj skrypt powiedz czy dziala, jesli nie to zrob prosty skrypt bez tych wszystkich bajerow
[php]
<?php

if(mail('twojemail', 'test','test')) {
echo "wyslano";
} else {
echo "nie wyslano";
}

?>

Jesli bedzie komunikat ze wyslano a ty nie dostaniesz to moze sam masz problemu z odbieraniem smile.gif Jesli si neie wysle to bedziemy kombinowac dalej.

Tak jeszcze sobie poczytaj mail()
kocu
no niestety serwer wymaga uwierzytelnienia



Cytat
Warning: mail() [function.mail]: SMTP server response: 554 <formadm@o2.pl>: Sender address rejected: SERWER poczta.o2.pl WYMAGA UWIERZYTELNIENIA. Zobacz http://pomoc.o2.pl/poczta/autoryzacja/ i skonfiguruj poprawnie program pocztowy. in C:\htdocs\phpflash\ch02\TMP5slz81yjn.php on line 3
nie wyslano




kurde kurde dzisiaj o dziwo zadzialal skrypt phpmailera dzieki za pomoc !

no niestety nie do konca sie rozwiazal ten problem jak juz moj kod wyglada tak (z przechwytywaniem danych z flasha) :

  1. <?
  2. require("phpmailer/class.phpmailer.php");
  3. $mail = new PHPMailer();
  4.  
  5. $mail->PluginDir = "phpmailer/";
  6. $mail->From = "FORMULARZ ZE STRONY INTERNETOWEJ"; //adres naszego konta
  7. $mail->FromName = "phpMailer tester";//nagГѓwek From
  8. $mail->Host = "poczta.o2.pl";//adres serwera SMTP
  9. $mail->Mailer = "smtp";
  10. $mail->Username = "*******";//nazwa uПytkownika
  11. $mail->Password = "******";//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.  
  19. $text_body = 'Od: '.$_POST['from']."nn";
  20. $text_body .= 'Email: '.$_POST['email']."nn";
  21. $text_body .= 'adres: '.$_POST['snail']."nn";
  22. $text_body .= 'telefon: '.$_POST['phone']."nn";
  23. $text_body .= 'Komentarze: '.$_POST['comments'];
  24.  
  25.  
  26.  
  27. $mail->Body = $text_body;
  28. // adresatѓw dodajemy poprzez metode 'AddAddress'
  29. $mail->AddAddress("formadm@o2.pl","Jurek");
  30. //$mail->AddAddress("franek@gdziestam.pl","Franek");
  31.  
  32. if(!$mail->Send())
  33. echo "There has been a mail error <br>";
  34. echo $mail->ErrorInfo."<br>";
  35.  
  36. // Clear all addresses and attachments
  37. $mail->ClearAddresses();
  38. $mail->ClearAttachments();
  39. echo "mail sent <br>";
  40.  
  41. ?>



to niestety nie chce mi wyslac maila :/


czy cos nie tak zrobilem?

a moze ktos wie jak w tym formularzu zastapic funkcje mail() klasa mailera


  1. <?php
  2. // sprawdzamy, czy zmienna $submit jest pusta
  3. if (empty($_POST['submit'])) {
  4. // wyœwietlamy formularz
  5. echo "<table border="0"><form method="post">
  6. <tr>
  7. <td>Treœć wiadomoœci</td>
  8. <td><textarea name="tresc" style="width: 250px; height: 100px"></textarea></td>
  9. </tr>
  10. <tr>
  11. <td>Imię, nazwisko lub nick</td>
  12. <td><input type="text" name="imie" style="width: 250px"></td>
  13. </tr>
  14. <tr>
  15. <td>Adres e-mail</td>
  16. <td><input type="text" name="email" style="width: 250px"></td>
  17. </tr>
  18. <tr>
  19. <td>&nbsp;</td>
  20. <td><input type="submit" name="submit" value="Wy&#339;lij">&nbsp;
  21. <input type="reset" value="Od nowa"></td></form>
  22. </tr>
  23. </table>";
  24. }
  25. // sprawdzamy, czy zmienne przesłane z formularza nie sš puste
  26. elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
  27. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomoœć
  28. // zmienna $message zawiera treœć wiadomoœci
  29. $message = "Tre&#339;ć wiadomoœci:n$_POST[tresc]nWysłał: $_POST[imie]ne-mail: $_POST[email]";
  30. // zmienna $header zawiera przede wszystkim adres zwrotny
  31. $header = "From: $_POST[imie] <$_POST[email]>";
  32. // funkcja mail() za pomocš której wiadomoœć zostanie wysłana
  33. @mail("adres@domena.pl","Wiadomosc ze strony WWW","$message","$header")
  34. or die('Nie udało się wysłać wiadomoœci');
  35. // wyœwietlenie komunikatu w przypadku powodzenia 
  36. echo "<div align="center"><strong>Wiadomoœć została wysłana poprawnie!</strong></div>";
  37. }
  38. // lub w przypadku nie wypełnienia formularza do końca
  39. else echo "<span style="color: #FF0000; text-align: center;">Wypełnij wszystkie pola formularza!</span>";
  40.  
  41. ?>


ok juz mi sie udalo dzieki za wyczerpujace odpowiedzi


peac ALL biggrin.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.