Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [solved][phpmailer] czy da się zmienić nadawcę ?
Forum PHP.pl > Forum > PHP
nieraczek
Jeśli mam formularz kontaktowy z polami do wpisania: email, temat i wiadomość i wysyłanie emaila wygląda tak:


  1. <?php
  2. $emailod = "ktos@poczta.onet.pl";
  3. $temat = "temat";
  4. $wiadomosc = "tresc";
  5.  
  6.  
  7. require("phpmailer/class.phpmailer.php");
  8.        $mail = new PHPMailer();
  9.  
  10.        $mail->PluginDir = "phpmailer/";
  11.        $mail->From = "test@wp.pl";
  12.        $mail->FromName = $emailod;
  13.        $mail->Host = "smtp.wp.pl";
  14.        $mail->Mailer = "smtp";
  15.        $mail->Username = "test";  
  16.        $mail->Password = "test";
  17.        $mail->SMTPAuth = true;
  18.        $mail->SetLanguage("pl", "phpmailer/language/");  
  19.        $mail->CharSet = "UTF-8";
  20.  
  21.        $mail->Subject = $temat;  
  22.        $mail->Body = $wiadomosc;  
  23.        $mail->AddAddress("test@wp.pl");    
  24.  
  25.        
  26.        $mail->Send();
  27. ?>



To jak dostaję emaila (sprawdzałem i koncie pocztowym w wp.pl i w gmail.com) to pole od kogo go dostałem wyglada tak:
Od: ktos@poczta.onet.pl

A jak kliknę na odpowiedz to mam:
ktos@poczta.onet.pl <test@wp.pl>

i odpowiedź idzie na test@wp.pl - czyli moja odpowiedź trafia do mnie samego zamiast do tego kto wysłał ze strony emaila czyli ktos@poczta.onet.pl, czy tak musi być ?
vokiel
Wysyłasz maila z konta na wp.pl ($mail->Host = "smtp.wp.pl";) zatem to jest to konto, na któe mail będzie wracał.

Jeśli chcesz otrzymywać odp na tego maila z poczta.onet.pl to jego musisz podac w konfiguracji.
Czyli:
  1. <?php
  2. $mail->From = "ktos@poczta.onet.pl";
  3.       $mail->FromName = $emailod;
  4.       $mail->Host = "smtp.poczta.onet.pl";  // czy jakkolwiek oni tam maja
  5.       $mail->Username = "ktos";  
  6.       $mail->Password = "haslo_dla_ktosia";
  7. ?>
nieraczek
Ale ten 'ktos' to jakaś nieznajoma osoba, która chce się skontaktować ze mną wysyłając formularz więc nie znam jej loginu i hasła do konta pocztowego.

Najlepiej żeby to działało jak funkcja mail() z php czyli tak:
  1. <?php
  2.        $od = $emailod;
  3.        $naglowek = "From: <$od>r\n";
  4.        $naglowek .= "Reply-To: <$od>";
  5.  
  6.         $temat=iconv("UTF-8","ISO-8859-2", $temat);
  7.         $tresc=iconv("UTF-8","ISO-8859-2", $wiadomosc);
  8.  
  9.         mail("test@wp.pl", $temat, $tresc, $naglowek);
  10. ?>


Nie trzeba podawać loginu czy hasła, a w otrzymanej wiadomości w polu Od widnieje email wpisany przez użytkownika w formularzu. Niestety mam problem z polskimi znaczkami w przypadku funkcji mail() ........ :/

Zrobiłem tak:
  1. <?php
  2. require("phpmailer/class.phpmailer.php");
  3.        $mail = new PHPMailer();
  4.        $mail->IsMail(); //wyslanie emaila przy uzyciu funkcji mail() php
  5.  
  6.        $mail->From = stripslashes($emailod);      
  7.        $mail->FromName = "Strona WWW";
  8.  
  9.        $mail->SetLanguage("pl", "phpmailer/language/");
  10.        $mail->CharSet = "UTF-8";
  11.  
  12.        $mail->Subject = stripslashes($temat);
  13.        $mail->Body = stripslashes($wiadomosc);
  14.        $mail->AddAddress("test@wp.pl");    
  15.        
  16.        if(!$mail->Send())
  17.        {  
  18.            echo "Nie udało się wysłać wiadomości, spróbuj później.";  
  19.            echo 'Mailer error: ' . $mail->ErrorInfo;  
  20.        }
  21.        else
  22.        {  
  23.            echo "Wiadomość została wysłana.";  
  24.        }
  25. ?>



i działa biggrin.gif guitar.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.