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

Här diskuteras programmering och utveckling
Användarvisningsbild
omnius
Inlägg: 272
Blev medlem: 30 jan 2007, 12:38
OS: Annat GNU/Linux
Utgåva: Vet inte/ingen utgåva passar
Ort: Gnesta

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

Inlägg 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
Strength in the arm, truth in the heart, honesty in speech
Okänd
Inlägg: 30172
Blev medlem: 03 mar 2008, 01:30
OS: Ubuntu

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

Inlägg 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);

?>
Användarvisningsbild
omnius
Inlägg: 272
Blev medlem: 30 jan 2007, 12:38
OS: Annat GNU/Linux
Utgåva: Vet inte/ingen utgåva passar
Ort: Gnesta

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

Inlägg av omnius »

you da man  :D
 
ska testa och se hur det går

/Thomas
Strength in the arm, truth in the heart, honesty in speech
Användarvisningsbild
omnius
Inlägg: 272
Blev medlem: 30 jan 2007, 12:38
OS: Annat GNU/Linux
Utgåva: Vet inte/ingen utgåva passar
Ort: Gnesta

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

Inlägg 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
Strength in the arm, truth in the heart, honesty in speech
Användarvisningsbild
omnius
Inlägg: 272
Blev medlem: 30 jan 2007, 12:38
OS: Annat GNU/Linux
Utgåva: Vet inte/ingen utgåva passar
Ort: Gnesta

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

Inlägg 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
Strength in the arm, truth in the heart, honesty in speech
Okänd
Inlägg: 30172
Blev medlem: 03 mar 2008, 01:30
OS: Ubuntu

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

Inlägg 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
Användarvisningsbild
omnius
Inlägg: 272
Blev medlem: 30 jan 2007, 12:38
OS: Annat GNU/Linux
Utgåva: Vet inte/ingen utgåva passar
Ort: Gnesta

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

Inlägg 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
Strength in the arm, truth in the heart, honesty in speech
Skriv svar

Återgå till "Programmering och webbdesign"