Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] wysyłanie email skrypt przestał działać
Forum PHP.pl > Forum > PHP
jagwie
Witam mam następujący problem szykuje nową wersie strony .
jakiś czas temu wstawiłem formulaż na stronie i wszystko działało poprawnie.
Lecz kiedy wczoraj sprawdzałem to na stronie jest niby wszystko ok wyskakuje komunikat o wysłaniu email lecz on nie dociera do adresata.
Poniżej podam skrypt php i plik tpl
  1. // WYSYLANIE WIADOMOSCI E-MAIL
  2. if(isset($_POST['imie']) && isset($_POST['email']) && isset($_POST['tresc'])) {
  3.  
  4. if(empty($_POST['imie']))
  5. $smarty->assign('bladEmail', 1);
  6. if(empty($_POST['email']))
  7. $smarty->assign('bladEmail', 1);
  8. if(empty($_POST['tresc']))
  9. $smarty->assign('bladEmail', 1);
  10.  
  11. if(!empty($_POST['imie']) and !empty($_POST['email']) and !empty($_POST['tresc'])) {
  12.  
  13. global $serwis_url ;
  14.  
  15. $tresc = '<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 5.0 transitional//EN">
  16.  
  17.  
  18. <html >
  19. <head>
  20. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  21. </head>
  22. <body style=" background:#e4e4e4; ">
  23. <div style="margin-left:auto; margin-right:auto; width:605px;">
  24. <div style=" float:left; width:5px; height:70; background:#0090c5;"></div>
  25. <div style="width:600px; height:70px; margin-left:5px; background:#75abbf; ">
  26. <div style="color:#ffffff; font-size:25px; margin-left:5px; font-family:Helvetica,Arial,sans-serif;">?</div>
  27. </div>
  28. <br/>
  29. <div style="float:left; width:5px; height:100%; background:#85bdad;"></div>
  30. <div style="width:600px; margin-left:5px; background:#ffffff; height:100%; font-size:20px;">
  31. <div style=" margin-left:5px; font-size:20px; font-family:Helvetica,Arial,sans-serif; ">
  32. Zapytanie o rezerwację noclegu wysłane z serwisu <hr>
  33. </div>
  34.  
  35. <div style=" margin-left:5px; font-size:20px; font-family:Helvetica,Arial,sans-serif; ">
  36. Treść:
  37. </div>
  38. <div style=" margin-left:5px; font-size:15px; font-family:Helvetica,Arial,sans-serif; ">
  39. '.nl2br(($_POST['tresc'])).'
  40. </div>
  41.  
  42.  
  43.  
  44.  
  45. </div>
  46. </div>
  47.  
  48. </body>
  49. </html>
  50.  
  51. ';
  52.  
  53. $headers .= 'Reply-To: <'.$_POST['email']."> \r\n";
  54. $headers .= 'From: "'.$_POST['imie'].'" <'.$_POST['email'].">\r\n";
  55. $headers .= 'Bcc: dodatkowyadres@op.pl' . "\r\n";
  56. //$headers .= "MIME-Version: 1.0 \r\n";
  57. $headers .= "Content-type: text/html; charset=utf-8";
  58. $headers = iconv("UTF-8","ISO-8859-2", $headers);
  59.  
  60. mail( $wynik['email'] , 'Zapytanie o nocleg wysłane z serwisu Nyny.pl', $tresc, $headers);
  61. $smarty->assign('wyslanyEmail', 1);
  62.  
  63. }
  64.  
  65. }

plik tpl
  1. {if $email ne ""}
  2. {if $wyslanyEmail == 1}
  3. <i class="red">Wiadomośc została wysłana pomyślnie</i>
  4. {elseif $bladEmail == 1}
  5. <i class="red">Uwaga!</i> Wiadomośc nie została wysłana. Sprawdź poprawność wpisanych danych w formularzu.
  6. {/if}
  7. <form method="post" action="">
  8. <div><b>Kontakt e-mail:</b>&nbsp; Jeżeli chcesz zarezerwować pokój / zadać pytanie właścicielowi.</div>
  9. <div><b>Imię i nazwisko:</b>&nbsp;<input name="imie"/></div>
  10. <div><b>E-mail:</b> &nbsp; <input name="email"/></div>
  11. <div><b>Treść wiadomości:</b></div>
  12. <div><textarea name="tresc" style="width:350px;height:150px;"></textarea></div>
  13. <input type="image" src="images/pl/ok.gif" class="noneInput" id="submit" value="OK" />
  14. </form>
  15. {/if}

dodam że serwer jest home
nospor
Cytat
e jest niby wszystko ok wyskakuje komunikat o wysłaniu email lecz on nie dociera do adresata.
Bo nie sprawdzasz czy mail sie powiodl czy nie tylko zawsze walisz komunikat ze ok, to nic dziwnego ze zawsze dodstajesz ok....
mail() zwraca true albo false gdy sie powiedzie lub nie i ty w zaleznosci od tego masz zwracac odpowiedni komunikat.
Poza tym wlacz wyswietlanie bledow to sie dowiesz czemu mail sie nie powiodl
jagwie
rozumiem
występuje błąd serwera
wysłałem zapytanie do home
odpowiedz;
Pragnę poinformować, iż w ostatnich dniach wdrożono nowe mechanizmy antyspamowe, które ograniczają wysyłkę spamu oraz zjawisko tzw. spamu z własnego adresu. Niezbędne jest zaktualizowanie skryptu o poprawny nagłówek FROM - w tym przypadku należy podać rzeczywisty adres email, który istnieje na serwerze w home.pl. Szczegółowe informacje dostępne są w naszej dokumentacji pod adresem https://pomoc.home.pl/komunikaty/1067.

Lecz i tak mam problem z poprawieniem tego skryptu
jeśli ktoś spotkał się z tym problemem to prosiłbym o pomoc

zmiana poniżej działa lecz tylko na tym formularzu
dodałem $piatyparametr
I w wiadomości " nadawca" występuje adres serwera zamiast nadawcy
Przy odpowiedzi na zapytanie jest okej odpowiedz kierowana jest do nadawcy

  1. $headers .= 'Reply-To: <'.$_POST['email']."> \r\n";
  2. $piatyparametr .= 'From: "'.$_POST['imie'].'" <'.$_POST['email'].">\r\n";
  3. $headers .= 'Bcc: dodatkowyadres@op.pl' . "\r\n";
  4. //$headers .= "MIME-Version: 1.0 \r\n";
  5. $headers .= "Content-type: text/html; charset=utf-8";
  6. $headers = iconv("UTF-8","ISO-8859-2", $headers);
  7.  
  8. mail( $wynik['email'] , 'Zapytanie o nocleg wysłane z serwisu Nyny.pl', $tresc, $headers, $piatyparametr);
  9. $smarty->assign('wyslanyEmail', 1);
john_doe
ostatnio musiałem też modyfikować pewną wysyłkę z home.pl
nie używam jednak funkcji mail()
jednak, zrób tak jak napisali.

from - tutaj MUSI być adres, który istnieje w ramach Twojego serwera home. W tej chwili pakujesz tam POST, który pewnie jest uzupełniony o coś innego

zapoznaj się z tym klik

patryczakowy
A ja polecam używać Swiftmailer i wiadomości wysyłać po smtp i wszystkie takiego typu problemy powinny się skonczyć
jagwie
z tym formularzem się uporałem
usunołem
$headers .= 'From: "'.$_POST['imie'].'" <'.$_POST['email'].">\r\n";
dodałem piąty parametr
"-f info@noclegi.nyny.pl"

  1. $headers .= 'Reply-To: <'.$_POST['email']."> \r\n";
  2. $headers .= 'Bcc: nyny@nyny.pl' . "\r\n";
  3. //$headers .= "MIME-Version: 1.0 \r\n";
  4. $headers .= "Content-type: text/html; charset=utf-8";
  5. $headers = iconv("UTF-8","ISO-8859-2", $headers);
  6.  
  7. mail( $wynik['email'] , 'Zapytanie o nocleg wysłane z serwisu Nyny.pl', $tresc, $headers,"-f info@noclegi.nyny.pl");
  8. $smarty->assign('wyslanyEmail', 1);


lecz następny formulaż do rejestracj w podobnych ustawieniach nie działa
kawałek skryptu
  1. $headers = 'Reply-To: '.$zmienne['admin_email'].' <'.$zmienne['admin_email']."> \r\n";
  2. $headers .= 'From: "Administrator" <'.$zmienne['admin_email'].">\r\n";
  3. $headers .= "MIME-Version: 1.0 \r\n";
  4. $headers .= "Content-type: text/html; charset=utf-8 \r\n";
  5. $headers = iconv("UTF-8","ISO-8859-2", $headers);
  6.  
  7. $tresc = strtr($tresc, "\xA5\x8C\x8F\xB9\x9C\x9F", "\xA1\xA6\xAC\xB1\xB6\xBC");
  8. $tresc = str_replace("{login}",$login,$tresc);
  9. $tresc = str_replace("{haslo}",$haslo,$tresc);
  10. $tresc = str_replace("{imie}",$imie,$tresc);
  11. $tresc = str_replace("{link_aktywacyjny}",$link_aktywacyjny,$tresc);
  12. $tresc = str_replace("{serwis_url}",$zmienne['serwis_url'],$tresc);
  13.  
  14. mail($email,$zmienne['serwis_url']." - Aktywacja konta",$tresc,$headers);
  15. mkdir("uzytkownicy/$login", 0777);

zmodyfikowałem na
  1. $headers = 'Reply-To: '.$zmienne['admin_email'].' <'.$zmienne['admin_email']."> \r\n";
  2. $headers .= "MIME-Version: 1.0 \r\n";
  3. $headers .= "Content-type: text/html; charset=utf-8 \r\n";
  4. $headers = iconv("UTF-8","ISO-8859-2", $headers);
  5.  
  6. $tresc = strtr($tresc, "\xA5\x8C\x8F\xB9\x9C\x9F", "\xA1\xA6\xAC\xB1\xB6\xBC");
  7. $tresc = str_replace("{login}",$login,$tresc);
  8. $tresc = str_replace("{haslo}",$haslo,$tresc);
  9. $tresc = str_replace("{imie}",$imie,$tresc);
  10. $tresc = str_replace("{link_aktywacyjny}",$link_aktywacyjny,$tresc);
  11. $tresc = str_replace("{serwis_url}",$zmienne['serwis_url'],$tresc);
  12.  
  13. mail($email,$zmienne['serwis_url']." - Aktywacja konta",$tresc,$headers,"-f info@noclegi.nyny.pl");
  14. mkdir("uzytkownicy/$login", 0777);

wyskakuje błąd
Warning: mkdir() [function.mkdir]: File exists in /inc/rejestracja.inc.php on line 148
nospor
Tworzysz katalog, ktory juz istnieje wiec dostajesz blad
jagwie
błąd z powodu istniejącego już katalogu
Lecz email nie jest dostarczany
patryczakowy
sprawdż w spamie bo korzystanie z mail() to prosta sćieżka by się tam znaleść.
Niebardzo rozumiem czemu deklarujesz utf-8 a nagłówki konwertujesz na iso?
jagwie
w spamie nie ma
przesyła tylko na adres z parametru "-F nazwa@domena.pl"
wiadomość niewiem jaki jest tego powód
oto tresc
This is the IdeaMailServer program at host serwer111.home.pl.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

<gio.invest@vp.pl>: 550 5.1.1 <gio.invest@vp.pl>: Recipient address rejected: User unknown

---- Original Message ----
Date: Tue, 5 Aug 2014 20:42:47 0200
Message-ID: <53e125a7.a00e6.1290e.167d@v295.home.net.pl>
From: info@noclegi.nyny.pl
To: gio.invest@vp.pl
Subject: http://noclegi.nyny.pl/ - Aktywacja konta
patryczakowy
Recipient address rejected: User unknown

niema takiego adresu
jagwie
tak to wygląda lecz taki adres istnieje i to jest dziwne
patryczakowy
a na inne dochodzą?
może literówka?
lub spacja jakaś się zabłokała?
spróbój zrobić trim() na email
jagwie
serdeczne dzięki
zamiast
gio.invest@vp.pl
gio.inwest@vp.pl
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.