Fout in mail

Status
Niet open voor verdere reacties.

Frenske123

Terugkerende gebruiker
Lid geworden
2 jul 2007
Berichten
1.267
Hallo

Voor het verzenden van een mail heb ik o.a:




PHP:
				$headers   = array();
				$headers[] = "MIME-Version: 1.0";
				$headers[] = "Content-type: text/plain; charset=utf-8";
				$headers[] = "From: ".$from_user." <".$from_user.">";
				$headers[] = "Subject: ".$subject;
				$headers[] = "X-Mailer: PHP/".phpversion();		

				$message = $_SESSION['gbook']['new_entry']['name'].": \r\n\r\n".$_SESSION['gbook']['new_entry']['message'];
					$message = $_SESSION['gbook']['new_entry']['name'].": \r\n\r\n".$_SESSION['gbook']['new_entry']['message'];
					//$message2 = $_SERVER['REMOTE_ADDR']; 
				
				if(!@mail(ADMIN_MAIL, $subject, $message, implode("\r\n", $headers))){
					$this->error[] = "###error_couldnt_send_adminmail###";
				}
			}

Nou wil ik het ip adres van invuller meegeven in email door onderstaande toe te voegen

PHP:
$ip= $_SERVER['REMOTE_ADDR']; 

if(!@mail(ADMIN_MAIL, $subject, $message, $ip, implode("\r\n", $headers))){
					$this->error[] = "###error_couldnt_send_adminmail###";
				}
			}

Maar krijg een foutmelding in de te ontvangen email:

A message that you sent contained a recipient address that was incorrectly
constructed:
MIME-Version: missing or malformed local part (expected word or "<")


Iemand een oplossing?
 
Je hebt (met die toevoeging) 'teveel' parameters voor mail()
Het format is namelijk: mail(to,subject,message,headers,parameters);
Je schuift nu via het toevoegen van $ip als parameter het $ip naar het headers gedeelte en $headers naar het (optionele) parameters gedeelte.

Probeer het dus eens zo:
PHP:
if(!@mail(ADMIN_MAIL, $subject, $message.$ip, implode("\r\n", $headers))){
                    $this->error[] = "###error_couldnt_send_adminmail###";
of (evt., extra regelovergang):
PHP:
if(!@mail(ADMIN_MAIL, $subject, $message.$ip."\r\n", implode("\r\n", $headers))){
                    $this->error[] = "###error_couldnt_send_adminmail###";

Tijs.
 
Laatst bewerkt:
Tijs bedankt :thumb:

Alleen de regelovergang wil niet zo lukken indien mogelijk (fout voorbeeld hieronder).
PHP:
if(!@mail(ADMIN_MAIL, $subject, $message.'<br>'.$ip."<br>", implode("\r\n", $headers))
 
a. Probeer ipv. jouw code de volgende (= géén '-tekens rondom de eerste <br>)
PHP:
if(!@mail(ADMIN_MAIL, $subject, $message."<br>".$ip."<br>", implode("\r\n", $headers)){

b. Zover ik kan kan begrijpen (ik ben géén php-goeroe :D) injecteer je echte karakters in de body van je mail, dus ook die van een regelovergang.
Dus zou het dan (als a. niet goed werkt) niet zo moeten zijn?
PHP:
if(!@mail(ADMIN_MAIL, $subject, $message."\r\n".$ip."\r\n", implode("\r\n", $headers)){

Tijs.
 
Laatst bewerkt:
Bedankt Tijs,

De laatste oplossing deed het goed :thumb:
PHP:
if(!@mail(ADMIN_MAIL, $subject, $message."\r\n".$ip."\r\n", implode("\r\n", $headers))
 
Fijn dat je ermee geholpen bent.

Graag nog deze vraag de status opgelost geven.

Tijs.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan