webForumDet fria alternativet

mail() och Loopia

PHP

6 svar · 1 167 visningar · startad av Moonman

Medlem sedan apr. 200273 inlägg
Frågan#1

Hej alla tomtar!

Har sökt och testat allt jag har hittat men jag kan inte få åäö att fungera i mina mail, vare sig i subject eller message. Är det någon som vet om Loopia har något speciellt krav eller vad som behövs för att det ska fungera?

mvh
Moonman

Medlem sedan mars 20007 896 inlägg
#2

Har du försökt att sätta headers i dina mail? Skickar du dom som plain text eller html?

mail($to, $subject, $message, "MIME-version: 1.0\nContent-type: text/html; charset=ISO-8859-1");
Medlem sedan apr. 200273 inlägg
#3

Bara som text. Har provat olika headers men inte fått det att fungera. Ska testa din och återkommer senare

Medlem sedan dec. 20042 245 inlägg
#4

För att body ska fungera korrekt behöver du ange Content-Type: text/plain; charset=... (ev. följt av format- och delsp-parametrar) där "..." är den charset du använder för bodyn, tex utf-8.

För icke-ascii-tecken ska fungera i headers (tex From:) behöver du nog escapa texten som base64 som följer:

From: =?UTF-8?B?[i]w6XDpMO2DQo[/i]?= <[i]foo@example.org[/i]>

...där "w6XDpMO2DQo" är "åäö" i utf-8 i base64.

Medlem sedan apr. 200273 inlägg
#5

Har testat testat båda era förslag. Kan ni se felet jag gör i koden?

$to = $_POST["email"];
$subject = "Kroginspektionen: Ditt lösenord";
$body = "Hej!\n\nHär är ditt lösenord: " . $row["Password"] . "\n\nMvh\nKroginspektionen.nu";
if(mail("$to", "$subject", "$body", "From: [email]noreply@Kroginspektionen.nu[/email] MIME-version: 1.0\nContent-type: text/plain; charset=ISO-8859-1"))
	echo("Ett mail med ditt lösenord är skickat!");
else
	echo("Ett fel uppstod när ditt email skulle skickas!");
Medlem sedan juni 20001 251 inlägg
#6
From: [email]noreply@Kroginspektionen.nu[/email]\nReply-To: [email]noreply@Kroginspektionen.nu[/email]\nMIME
Medlem sedan apr. 200273 inlägg
#7

Tusen tack alla! Fick det att fungera tills slut med koden nedanför, någon som har förbättringar?

$to = $_POST["email"];
$subject = "=?UTF-8?B?" . base64_encode("Kroginspektionen: Ditt lösenord") . "?=";
$body = "Hej!\n\nHär är ditt lösenord: " . $row["Password"] . "\n\nMvh\nKroginspektionen.nu";
$header = "From: Kroginspektionen.nu <noreply@Kroginspektionen.nu>\nMIME-version: 1.0\nContent-type: text/plain; charset=utf-8";

if(mail("$to", "$subject", "$body", "$header"))
	echo("Ett mail med ditt lösenord är skickat!");
else
	echo("Ett fel uppstod när ditt email skulle skickas!");
250 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)