Sida 1 av 1

Epost/kontaktformulär i Php - bestämma kodning i mail som skickas?

Postat: 20 okt 2007, 18:14
av omnius
Problemet är att snubben som får ta emot eposten får specialtecken (å ä ö) felvisade. Kan jag på något sätt berätta för den server som skickar eposten till nämnda person att den skall kodas i utf-8 (eller annan kodning) och i så fall hur. Jag talar inte om någon html-header alltså, det måste vara något annat.

tacksam för hjälp

/Thomas

SV: Epost/kontaktformulär i Php - bestämma kodning i mail som skickas?

Postat: 20 okt 2007, 18:40
av Okänd
Det blir inte så lätt... Kan du prova det här?


<?php
...
$charset='UTF-8';
$subject='Subject med extra chars: åäöÅÄÖ';
$encoded_subject="=?$charset?B?".base64_encode($subject)."?=\n";
$to=mail@peter.se;
$body='Detta är body';
$headers="From: ".$from."\n"
    . "Content-Type: text/plain; charset=$charset; format=flowed\n"
    . "MIME-Version: 1.0\n"
    . "Content-Transfer-Encoding: 8bit\n"
    . "X-Mailer: PHP\n";
mail($to,$encoded_subject, $body,$headers);

?>

SV: Epost/kontaktformulär i Php - bestämma kodning i mail som skickas?

Postat: 20 okt 2007, 18:56
av omnius
you da man  :D
 
ska testa och se hur det går

/Thomas

SV: Epost/kontaktformulär i Php - bestämma kodning i mail som skickas?

Postat: 20 okt 2007, 22:45
av omnius
Det verkar funka bra Little John. Tack så mycket för hjälpen, har lärt mig något nytt nu. Ska inte ropa hej iofs eftersom jag inte fått reda på ännu hur det ser ut hos snubben som det skickas till, men jag har stora förhoppningar

/Thomas

SV: Epost/kontaktformulär i Php - bestämma kodning i mail som skickas?

Postat: 21 okt 2007, 13:47
av omnius
Ok LJ

Det blev inte så bra, ska visa hur jag gjort scriptet:

Kod: Markera allt

<?php
$charset='utf-8';
$subject = "Webbformulär easygreen.se";
$encoded_subject="=?$charset?B?".base64_encode($subject)."?=\n";
$to = "info@easygreen.se";
$to = "info@algis.se";
$Epost = Trim(stripslashes($_POST['Epost'])); 
$Namn = Trim(stripslashes($_POST['Namn']));
$Co = Trim(stripslashes($_POST['Co']));
$whatever = Trim(stripslashes($_POST['whatever']));

// validering
$validationOK=true;
if (Trim($Namn)=="") $validationOK=false;
if (Trim($Epost)=="") $validationOK=false;
if (!$validationOK) {
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
  exit;
}
//Header
$headers="From: ".$Epost."<".$Namn.">"."\n"
	."Reply-To: ".$Namn."<".$Epost.">"."\n"
	."Return-Path: ".$Namn."<".$Epost.">"."\n"
	."Message-ID: <".time()."-".$Epost.">"."\n"
	."content-type: text/plain; charset=$charset; format=flowed"."\n"
	."MIME-Version: 1.0\n"
	."Content-Transfer-Encoding: 8bit\n"
	."X-Mailer: PHP\n";
// body epost
$Body .= "Företag: ";
$Body .= $Co;
$Body .= "\n";
$Body .= "Ärende :";
$Body .= "\n";
$Body .= $whatever;
$Body .= "\n";

// skicka eposten 
$success = mail($to, $encoded_subject, $Body, $headers);

// om lyckat 
if ($success){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=ok.html\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
}
?>
och själva formuläret på webbsidan ser ut på följande sätt:

Kod: Markera allt

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">

<head>

<title>Test</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />



</head>

	<body>



			<div id="sidecontent"><form method="post" action="rapport.php">

				<div class="contact"></div><br />

				<p>E-post:(obligatoriskt)<br /><input type="text" name="Epost" class="text" /></p>

				<p>Namn:(obligatoriskt)<br /><input type="text" name="Namn" class="text" /></p>

				<p>Företag:<br /><input type="text" name="Co" class="text" /></p>

				<p>Ärende:</p>

				<textarea name="whatever" class="textarea"></textarea>

				<br /><br />

				<input type="submit" name="submit" value="Skicka!" />

				   

				<input type="reset" name="reset" value="Rensa och börja om!" />

			</div><!-- /sidecontent -->

	</body>		

</html>
output till snubben blir fortfarande tokigt.... Det blir inga problem när det skickas till mig. Vad jag än gör så blir det fel med specialtecken hos honom. Frågan jag ställer mig, ligger problemet hos hans mailserver, mailklient eller nåt. Vet inte vad hans epost-server kör för OS, själv använder han MS Outlook som klient. Finns det något mer jag kan göra från mitt håll. Kan väl testa att köra iso-8859-1 antar jag, har inte gjort det med din scriptningshjälp, så jag kan testa det. Ser du något tokigt i koden som kan göras otokigt?

/Thomas

SV: Epost/kontaktformulär i Php - bestämma kodning i mail som skickas?

Postat: 21 okt 2007, 14:06
av Okänd
Hej!

Du kan väl prova med iso-8859-1.
Jag har för mig att jag var tvungen att ställa om kodning i outlook
i min frus gamla XP dator till UTF8, när det kom in mail ifrån min
Ubuntu maskin....
I din kod ser jag ingen fel, men jag är ju ingen specialist på php.
Kanske någon annan vet mer här ?

LJ

SV: Epost/kontaktformulär i Php - bestämma kodning i mail som skickas?

Postat: 21 okt 2007, 16:11
av omnius
nu blir det fel när det kommer till mig istället, vilket torde betyda att det blir rätt när det kommer till den andra snubben. Om det är så, kan man ju räkna denna förfrågan som avklarad (blir det jag som markerar detta eller är det någon moderator?)

tack för hjälpen med förhoppning om att inte behöva ställa en till fråga i samma ärende

/Thomas Johansson