Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z wysyłką maila
Forum PHP.pl > Forum > Przedszkole
cent4
Mam zrobioną wysyłkę mail - działa ona ok ale mam jakiś problem, bo najpierw dostaję właściwego maila ze strony, ale później dostaję 2 maila o takiej treści:

A message that you sent contained one or more recipient addresses that were
incorrectly constructed:

imie i nazwisko: missing or malformed local part (expected word or "<")

This address has been ignored. The other addresses in the message were
syntactically valid and have been passed on for an attempt at delivery.

------ This is a copy of your message, including all the headers. ------

To: imie i nazwisko
Subject: Wiadomosc ze strony www
X-PHP-Script: .../xmlHttpRequest.php for numer IP From: 1 <1>
From: 1 <admin>
To: <adres e-mail>
Message-Id: <E1QTINU-0003ML-domena>
Date: Sun, 05 Jun 2011 20:48:48 +0200

treść maila
test



zwykły formularz wywołuje skrypt:
  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  3. </head>
  4. <?php
  5. // Change the 4 variables below
  6. $yourName = 'xxx';
  7. $yourEmail = 'xxxxxl';
  8. $yourSubject = 'Wiadomosc ze strony www';
  9. $referringPage = 'xxxxxxxx';
  10. // No need to edit below unless you really want to. It's using a simple php mail() function. Use your own if you want
  11. function cleanPosUrl ($str) {
  12. return stripslashes($str);
  13. }
  14. if ( isset($_POST['sendContactEmail']) )
  15. {
  16. $to = $yourEmail;
  17. $subject = $yourSubject.': '.$_POST['posRegard'];
  18. $message = cleanPosUrl($_POST['posText']);
  19. $message = "Content-type: text/html; charset=iso-8859-2" . "\r\n";
  20. $headers .= "From: ".cleanPosUrl($_POST['posName'])." <".$_POST['posEmail'].">\r\n";
  21. $headers .= 'To: <'.$yourEmail.'>'."\r\n";
  22. $mailit = mail($to,$subject,$message,$headers);
  23. if ( @$mailit ) {
  24. header('Location: '.$referringPage.'?success=true');
  25. }
  26. else {
  27. header('Location: '.$referringPage.'?error=true');
  28. }
  29. }
  30. ?>
erix
Zamiast się z tym babrać, to skorzystaj z jakiejś biblioteki do wysyłki maili. Oszczędzisz sporo czasu.

Kod
To: <adres e-mail>

A to nie było tak, że adres e-mail w nawiasach trójkątnych umieszcza się tylko wtedy, gdy następuje za nazwą adresata?
cent4
Dokładnie tak - nawias trójkątny stosuje się za nazwą adresata, ale jak spojrzeć - w skrypcie dokładnie tak jest...
picios
czesc,
To prawda, powinieneś skorzystać z dedykowanej klasy, np: phpMailer
phpMailer
Przykładowe użycie:
  1. require_once('../class.phpmailer.php');
  2.  
  3. $mail = new PHPMailer(); // tworzysz obiekta
  4. $mail->CharSet = "UTF-8"; // ustawiasz obiekta
  5. $mail->AddAddress('to@o2.pl');
  6. $mail->SetFrom(from@o2.pl , 'Użytkownik serwisu www');
  7. $mail->AddReplyTo(from@o2.pl, 'Użytkownik serwisu www');
  8. $mail->Subject = 'Od ' . from@o2.pl . ' : ' . $subject;
  9. $mail->Body = 'Użytkownik serwisu napisał:
  10.  
  11. ' . $content;
  12. if (!$mail->Send()) { // no i ślesz zawartość
  13. echo $mail->ErrorInfo;
  14. } else {
  15. echo 'ok';
  16. }

A tak poza tym to wysyłasz dwa razy headery: na poczatku sekcja <head> i później header();
To może powodować problem
pozdro

erix
Cytat
w skrypcie dokładnie tak jest...

Sprawdziłem pisząc tamtego posta:
  1. $headers .= 'To: <'.$yourEmail.'>'."\r\n";

uważasz, że tak jest? Bo ja nie.
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.