Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Formularz kontaktowy na home.pl – zmiany po 7 lipca 2014 roku
Forum PHP.pl > Forum > Przedszkole
preibx
Dzień Dobry
Odnosząc się do wiadomości:

Aktualizacja zabezpieczeń antyspamowych na serwerach pocztowych

https://pomoc.home.pl/komunikaty/1067


W przypadku niektórych skryptów, może być wymagana ich edycja w taki sposób, aby poprawny adres e-mail nadawcy znajdował się w nagłówku. Przykładowo, może być to modyfikacja, która dodawałaby linię zawierającą poprawny nagłówek: "from: adres@domena.pl", np.:

dodanie do funkcji mail(); dodatkowego parametru zawierającego poprawny e-mail: "-f adres@domena.pl".

Przykład: mail($to, $subject, $message, $headers, "-f adres@domena.pl");
Piąty parametr funkcji mail() dodaje wpisane parametry do funkcji wysyłającej, a -f definiuje pole "from" w nagłówku.



Zawsze używałem poniższego formularza kontaktowego na serwerach home.pl.
Od lipca listy nie dochodzą do adresatów, jeśli nie mają założonej skrzynki na serwerach home.pl
Jak to naprawić?
Z góry serdecznie dziękuję za pomoc.
Preibx

plik: wyslij.php
CODE

<?php
//sprawdzenie czy zalcznik pochodzi z formularza
if ($_POST["wyslij"]==0) // 1 to załączniki dodawane, 0 to bez załczników
{
srand((double)microtime()*1000000);
$znacznik = md5(uniqid(rand()));

// zmienne
$imnaz = $_POST["imnaz"];
$tel = $_POST["tel"];
$email = $_POST["email"];
$tresc = $_POST["tresc"];

// tresc listu
$tresclistu = "
Treść listu:
Nadawca: $imnaz
Adres e-mail: $email

Treść:
$tresc

";

// dane o odbiorcy, nadawcy
$odbiorca="adres na jaki zostanie wysłana wiadomość";
$tytul="Temat listu";

$redirectURL = "podziekowanie.php"; // the URL of the thank you page.
$redirectblad = "blad.php"; // the URL of the thank you page.

// definicja naglowka
$naglowki = "From: $nick <$email>\n";
$naglowki .= "MIME-Version: 1.0\n";
$naglowki .= "Content-Type: multipart/mixed;\n";
$naglowki .= "\tboundary=\"___$znacznik==\"";

// naglowki listu
$tresc="--___$znacznik==\n";
$tresc .="Content-Type: text/plain; charset=\"utf-8\"\n";
$tresc .="Content-Transfer-Encoding: 8bit\n";
$tresc .="\n$tresclistu\n";

// naglowki i obsługa załącznika
$plik_nazwa_tmp = $_FILES["plik1"]["tmp_name"];
$plik_nazwa_oryginalna = $_FILES["plik1"]["name"];
$plik_wielkosc = $_FILES["plik1"]["size"];

if (is_uploaded_file($plik_nazwa_tmp))
{
$tresc .="--___$znacznik==\n";
$tresc .="Content-Type: image/gif\n";
$tresc .="Content-Disposition: attachment;\n";
$tresc .=" filename=\"$plik_nazwa_oryginalna\"\n";
$tresc .="Content-Transfer-Encoding: base64\n\n";
$f = fopen($plik_nazwa_tmp,"rb");
$dane = fread($f,filesize($plik_nazwa_tmp));
fclose($f);
$tresc .= chunk_split(base64_encode($dane));
$tresc .="--___$znacznik==--\n";
}

// wysłanie listu
if (mail($odbiorca,$tytul,$tresc,$naglowki))
{
header("Location: ".$redirectURL);
}
else
{
header("Location: ".$redirectblad);
}
}
?>



lukasz_os
Przeciez masz dokladnie napisane co masz zrobić. Do funkcji mail doklej piaty parametr z adresem maila z którego wysylasz wiadomości. 10 linijka od dołu.
preibx
Dziękuję za szybką reakcję.
No właśnie w tym problem.
Jak zamienie oryginał na taki wpis:
  1. // wysłanie listu
  2. if (mail($odbiorca,$tytul,$tresc,$naglowki,'-f xxx@home.pl'))


gdzie xxx@home.pl to adres skrzynki założonej na home.pl to skrypt wywala się do
  1. else
  2. {
  3. header("Location: ".$redirectblad);
  4. }


Nie rozumiem gdzie popłniam błąd.
tomi1985
spróbuj bez cudzysłowa
preibx
1)
Pomogło usunięcie lini (nic nie dopisywałem w funkcji mail:
  1. // definicja naglowka
  2. // $naglowki = "From: $nick <$email>\n";


Ale teraz jako nadawca jest główny mail konta na serwerze w home.

2)
Mogę zostawić tą linie i zamiast zmiennej $email - dać dowolny adres e-mail ale założony na home i też będzie działać.
Problem nadawcy nadal jest.

3)
Jak zrobić aby otrzymać w mailu prawdziwego nadawcę?
trueblue
A czemu dodawałeś piąty parametr skoro już miałeś From w nagłówku?
ZaXaZ
Cytat(trueblue @ 1.09.2014, 17:25:54 ) *
A czemu dodawałeś piąty parametr skoro już miałeś From w nagłówku?


Ja czytalem (i chyba wlasnie u ich/lub na stackover...) ze wymagany jest piaty aby poprawnie wszedzie dzialalo odpowiadanie.
trueblue
Parametr -f jest ekwiwalentem From w nagłówku.

Ja mam takie info od home:
Cytat
"funkcja mail musi korzystać z adresu email, który istnieje na serwerze home.pl. Musi to być adres rzeczywisty, w związku z czym można dodać parametr -f lub skonfigurować skrypt z odpowiednim nagłówkiem FROM."
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.