webForumDet fria alternativet

Dekoda mail-subject

3 svar · 284 visningar · startad av davids

davidsMedlem sedan mars 2001238 inlägg
#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

RobbanMedlem 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 >

davidsMedlem 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

AgaithMedlem 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.

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)