webForumDet fria alternativet

Dekoda mail-subject

PHP

3 svar · 286 visningar · startad av davids

Medlem sedan mars 2001238 inlägg
Frågan#1

Hejsan!

Håller på och snickrar ihop en liten webmail tjänst. Mail skickade med Outlook har en tendens att bete sig extra konstigt.

Mitt lilla problem just nu är att mail skickade från Outlook som innehåller åäö i subject-raden inte skrivs ut rätt av min webmail.

Exempel:
* Ämne: här är det bara svenska tecken
* Skrivs ut som: =?iso-8859-1?Q?här_är_det_bara_svenska_tecken?=

Min fråga är: Finns det någon funktion i PHP som kan dekoda denna lilla fina textbit så att den skrivs ut rätt?

//David

Medlem sedan dec. 19992 555 inlägg
#2

Strängen är kodad med något som kallas "quoted-printable" (används för att mail med "konstiga" tecken som våra å, ä och ö skall kunna passera mailservrar som bara klarar ASCII). Man kan (möjligen) använda funktionen imap_qprint för att få det läsbart, men det kräver att IMAP-funktionerna är inkompilerade i PHP (det blir de inte som default, vad jag vet).

Annars är det fullt möjligt att skriva en rutin för detta själv (man kanske inte har tillgång till IMAP-funktionerna, p.g.a. att man använder sig av ett webhotell). Hur strängen är uppbyggd beskrivs i RFC2047.

------------------
Robban < robban@lipogram.com >

Medlem sedan mars 2001238 inlägg
#3

Tyvärr så har jag ju inte tillgång till imap-funktionerna på webhotellet. Ska ta mig en titt på RFC2047 och försöka sätta mig in i det.

Tack så mycket!

//David

Medlem sedan jan. 2001191 inlägg
#4

Har själv kollat lite på en webmail och jag har för mig att det funkade något sån't här..

$he = imap_header($mbox, $key+1);
if (!$he->subject)
{
echo "no subject";
}
else
{
$subject = decode_mime_string($he->subject);
}

där key+1 har med att göra vilket mail det rör sig om.

255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
116 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)