Problemer med formattering af email sendt med mail()
Jeg har følgende problem:Jeg har lavet et script, der sender en mail når nogen har reserveret på en hjemmeside.
I den mail, er der et link, som modtageren kan trykke på, så det reserverede bliver tilføjet databasen automatisk.
Emailen bliver sendt ud med mail()
Mit problem er, at der vilkårlige steder i linket bliver indsat et "!" (udråbstegn).
Det kan f.eks. se sådan her ud:
hxxp://www.abc.dk/internal/xxx.php?faellesrum_dato=25.%20Januar,%202004&faellesrum_dato_db=2004-01-25&from_time=16:00:00&to_time=24:00:00&name=Test&adress=Adresse&phone=8250xxxxxx&!email=aaa@aaa.dk&description=Fest
Bemærk udråbstegnet før email ("=8250xxxxxx&!email=aaa@aaa.dk").
Problemet med udråbstegnet er, at det sidder lige der (i det her tilfælde), hvor variablen email er. Det betyder at personens emailadresse så ikke bliver genkendt, og et automatisk svar ikke kan sendes tilbage så.
Min kode:
<?php
include("../includes/db_connect.php");
include("../includes/db_alias.php");
if ($email==''){
$email='noemail';
}
$site_base = 'http://www.xxx.dk/';
$emailrec = 'bbb@bbb.dk';
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: xxx <xxx@xxx.dk>\n";
$headers .= "X-Sender: xxx@xxx.dk\n";
$headers .= "X-Mailer: PHP\n"; // mailer
// $headers .= "X-Priority: 0\n"; // normal message!
$headers .= "Return-Path: xxx@xxx.dk <faellesrum@daniakollegiet.dk>";
$overskrift = "Leje af faellesrum";
$emailtekst = "<<< MAIL FRA xxx HJEMMESIDE >>><br><br>";
$emailtekst .= "Forespørgsel om leje af fællesrummet:<BR><BR>";
$emailtekst .= "---------------------------------------------<BR>";
$emailtekst .= "Leje-dato: <b>".$faellesrum_dato."</b><BR>";
$emailtekst .= "---------------------------------------------<BR>";
$emailtekst .= "<TABLE BORDER=\"0\" CELLSPACING=\"3\" CELLPADDING=\"2\"><tr><td>";
$emailtekst .= "Navn:</td><td><b>".$name."</td></tr><tr><td>";
$emailtekst .= "Adresse: </td><td><b>".$adress."</b></td></tr><tr><td>";
$emailtekst .= "Tlf.: </td><td><b>".$phone."</b></td></tr><tr><td>";
$emailtekst .= "Email: </td><td><b>".$email."</b></td></tr><tr><td>";
$emailtekst .= "Ønskes lejet til: </td><td><b>".$description."</b></td></tr></table><BR>";
$emailtekst .= "---------------------------------------------<BR>";
$emailtekst .= "Tryk på dette link for at tilføje personen til databasen:<BR><BR>";
$emailtekst .= "<A HREF=\"".$site_base."internal\aaa.php?faellesrum_dato=".$faellesrum_dato."&faellesrum_dato_db=".$faellesrum_dato_formatted."&from_time=16:00:00&to_time=24:00:00&name=".$name."&adress=".$adress."&phone=".$phone."&email=".$email."&description=".$description."&magicword=itsmagic&dymmy=1&dummy=2\">Tilføj ovenstående direkte til databasen</A>";
$emailtekst .= "<br><br>";
mail ($emailrec,$overskrift,$emailtekst,$headers);
print $emailrec.'<br>'.$overskrift.'<br>'.$emailtekst.'<br>'.$headers.'<br><br>';
?>
<HTML><HEAD><TITLE>Email afsendt...</TITLE>
<meta name="Generator" content="Stone's WebWriter 4">
</HEAD>
<BODY>
<META HTTP-EQUIV="REFRESH" CONTENT="0;URL=../faellesrum/index.php">
</body>
</HTML>
Bemærk at jeg har prøvet at skrive linket ud i linien:
print $emailrec.'<br>'.$overskrift.'<br>'.$emailtekst.'<br>'.$headers.'<br><br>'.$emailtekst2;
Dér skriver den linket korrekt, dvs. uden udråbstegn.
Det er altså et eller andet der opstår når mailen sendes.
Er det et formatteringsproblem? Et mailserver problem? (vi har en lille linux server stående som mailserver).