webForumDet fria alternativet

Avsändare i mail?

PHPur PHP

6 svar · 633 visningar · startad av soidog

soidogMedlem sedan nov. 200519 inlägg
#1

Hej,
Har bytt webhotell och nu i mina kontaktscript så kommer inte avsändaren med, endast root@host.mindomain.se

Förut på mitt gamla webhotell så kom avsändarens namn samt e-postadress med.

Så här ser koden ut

<?php
   $error_msg = '<p id="fel_meddelande"><b> Du har inte fyllt i alla obligatoriska fält</b></p>';
 
   $error = false;
 
   $submit = $_POST['submit'];
 
   if(empty($submit))
      $form_sent = false;
   else
      $form_sent = true;
 
   if ($form_sent)
   {
      $to  = 'minepostadress@mindomain.se' . ', ';
     
 
      $name = $_POST['name'];
      $email = $_POST['email'];
      $subject = $_POST['subject'];
      $message = $_POST['message'];
 
      if(!$name) { $error_msg .= '<p id="fel_meddelande_error"><i>. Du måste skriva ditt namn</i><br /></p>'; $error = true;}
      if(!$email) { $error_msg .= '<p id="fel_meddelande_error"><i>. Du måste skriva din e-mail</i><br /></p>'; $error = true;}
      if(!$subject) { $error_msg .= '<p id="fel_meddelande_error"><i>. Du måste skriva ett ämne</i><br /></p>'; $error = true;}
      if(!$message) { $error_msg .= '<p id="fel_meddelande_error"><i>. Du måste skriva ett meddelande</i><br /></p>'; $error = true;}
 
      if($email) { if(!eregi("^[a-z0-9_].+@[a-z0-9\-]+\.[a-z0-9\-\.]+$", $email)){ $error_msg .= "<p id=\"pprojin\"><i>. Felaktig E-postadress</i></p>"; $error = true; }}
 
      if(!$error)
      {
         $msg  = "Namn: \t $name \n";
         $msg .= "E-mail: \t $email \n";
         $msg .= "Meddelande: \n $message \n";
 
         // To send HTML mail, the Content-type header must be set
       $headers  = "MIME-Version: 1.0\r\n";
       $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
 
// Additional headers
       $headers .= "X-Priority: 1\r\n";
        $headers .= "X-MSMail-Priority: High\r\n";
       $headers .= "X-Mailer: php\r\n";
         $headers .= "From: $name <$email>\r\n";
         $headers .= "Reply-to: $name <$email>\r\n";
       $headers .= "Return-path: $name <$email>\r\n";
 
         mail($to, $subject ,stripslashes($msg), $headers);
      }
   }
 
   if (($form_sent) && (!$error))
   {
      echo '<p id="about_motion_top">Tack för ditt mail ' . $name .'.</p>';
      echo '<p id="about_motion_top">Ditt mail skickades utan problem och vi kommer att svara så fort som möjligt. Normalt tar det ca 12 timmar innan du har ett svar.</p>';
     
   }
   else
   {
      if ($error)
      {   
         echo $error_msg;
      }
 
      ?>
         <form action="?sida=kontakta" method="post" name="contact">
            <p id="kontakt_text">Namn:<span style="color: #C53A09;">*</span> <input name="name" type="text" value="<?php echo $name ?>" style="margin-left: 7px; height: 16px; width: 180px; border: 1px solid #000; background-color: #ffffff;color: #000000; font-size: 9px;"></p>
           
            <p id="kontakt_text">E-mail:<span style="color: #C53A09;">*</span> <input name="email" type="text" value="<?php echo $email ?>" style="margin-left: 3px; height: 16px; width: 180px; border: 1px solid #000; background-color: #ffffff;color: #000000; font-size: 9px;"></p>
           
            <p id="kontakt_text">Ämne:<span style="color: #C53A09;">*</span> <input name="subject" type="text" value="<?php echo $subject ?>" style="margin-left: 7px; height: 16px; width: 180px; border: 1px solid #000; background-color: #ffffff;color: #000000; font-size: 9px;"></p>
 
            <p id="kontakt_text">Meddelande<span style="color: #C53A09;">*</span>
            <br />
            <textarea name="message" cols="30" rows="8" style="margin-left: 0px; height: 100px; border: 1px solid #000; background-color: #ffffff; color: #000000; font-size: 12px; font-family: verdana; width: 250px;"><?php echo $message ?></textarea></p>
           
            <input name="submit" type="submit" value="Skicka" style="height: 17px; width: 60px; border: 1px solid #000; background-color: #ffffff; color: #000000; font-size: 9px;">
            <input name="submit" type="reset" value="Rensa" style="margin-left: 10px; height: 17px; width: 60px; border: 1px solid #000; background-color: #ffffff; color: #000000; font-size: 9px;">
         </form>
     
       <?
}
?>

Provar att skicka ett mail till mig själv. Och här är allt inkl headern till mailet

Return-Path: <minepostadress@minepostadress.se>
Delivered-To: 8-webmaster@thairecept.com
Received: (qmail 1328 invoked by uid 48); 24 May 2006 17:52:37 +0200
Date: 24 May 2006 17:52:37 +0200
Message-ID: <20060524155237.1324.qmail@host.soidog.net>
To: webmaster@thairecept.com,
Subject: Testar ämne
MIME-Version: 1.0
 
Content-type: text/html; charset=iso-8859-1
 
X-Priority: 1
 
X-MSMail-Priority: High
 
X-Mailer: php
 
From: Mitt namn <minepostadress@minepostadress.se>
Reply-to: Mitt namn <minepostadress@minepostadress.se>
X-Spam-Checker-Version: SpamAssassin 3.0.5 (2005-11-28) on host.soidog.net
X-Spam-Level: **
X-Spam-Status: No, score=2.6 required=7.0 tests=HTML_10_20,HTML_MESSAGE,
   HTML_MIME_NO_HTML_TAG,HTML_SHORT_LENGTH,MIME_HTML_ONLY,
   MISSING_MIMEOLE,NO_RELAYS,X_MSMAIL_PRIORITY_HIGH,X_PRIORITY_HIGH
   autolearn=no version=3.0.5
 
 
Namn:     Mitt namn
E-mail:     minepostadress@minepostadress.se
Meddelande:
Testar meddelande

Har försökt att fixa detta, sökt på nätet, provat olika saker men inte lyckats fått ordning på det.

Register_globals är satt till off om det spelar någon roll samt php version 4.3.9

Soidog...

GunnarDMedlem sedan juni 20014 290 inlägg
#2

Tänk på att det inte får finnas tomma rader i headern på ett mail och om header ser ut exact som ovanstående så finns det ett antal tomma rader i headern.

En tom rad är det som skiljer mellan vad som skall stå i header och vad som skall stå i bodyn/meddelandet.

soidogMedlem sedan nov. 200519 inlägg
#3

Tog bort dom tomma raderna, så nu ser det ut så här

$msg  = "Namn: \t $name \n";
         $msg .= "E-mail: \t $email \n";
         $msg .= "Meddelande: \n $message \n";
		 $headers  = "MIME-Version: 1.0\r\n";
		 $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
		 $headers .= "X-Priority: 1\r\n";
 	     $headers .= "X-MSMail-Priority: High\r\n";
		 $headers .= "X-Mailer: php\r\n";
         $headers .= "From: $name <$email>\r\n";
         $headers .= "Reply-to: $name <$email>\r\n";
		 $headers .= "Return-path: $name <$email>\r\n"; 
         mail($to, $subject ,stripslashes($msg), $headers, "-f$email");

Men det hjälpte inte. root@host.mindomain.se står fortfarnde som avsändare.

SoiDog...

GunnarDMedlem sedan juni 20014 290 inlägg
#4

Och hur ser header ut i det genererade mailet?

En annan orsak kan vara att dom inte tillåter att man sätter en valfri avsändare på sina mail (flaggan -f i mail kommandot) av säkerhetsskäl.

btw: använder du -f ? den finns inte med i den första kodsnutten du postade.

Då är enda lösningen att skaffa en php class/function som "pratar" direkt med SMTP servern.

soidogMedlem sedan nov. 200519 inlägg
#5

Så här ser headern ut i mailet som jag tar emot när jag mailar mig själv.

Return-Path: <minepostadress@minepostadress.se>
Delivered-To: 8-webmaster@thairecept.com
Received: (qmail 19541 invoked by uid 48); 26 May 2006 10:28:22 +0200
Date: 26 May 2006 10:28:22 +0200
Message-ID: <20060526082822.19538.qmail@host.soidog.net>
To: webmaster@thairecept.com,
Subject: Testar
MIME-Version: 1.0

Content-type: text/html; charset=iso-8859-1

X-Priority: 1

X-MSMail-Priority: High

X-Mailer: php

From: Mitt namn <minepostadress@minepostadress.se>
Reply-to: Mitt namn <minepostadress@minepostadress.se>

Namn: 	 Mitt namn 
E-mail: 	 minepostadress@minepostadress.se 
Meddelande: 
 Testar

-f$email råkade komma med av misstag när jag provade olika saker.
Den ska inte vara med i nuläget.

SoiDog...

GunnarDMedlem sedan juni 20014 290 inlägg
#6

Som synes så är det fortfarande tomma rader i headern och From: raden ligger efter dom tomma raderna. Prova att ta bort \r där du har \r\n.

soidogMedlem sedan nov. 200519 inlägg
#7

Tackar för hjälpen. Tog bort \r och nu funkar det som det ska.

132 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)