Avatar billede ellebaek Nybegynder
04. januar 2005 - 10:39 Der er 8 kommentarer og
1 løsning

X-mailer med æ og ø og å

Hej..
Jeg prøver at sende mails med X-mailer.
Jeg vil gerne i disse mails kunne skrive æ,ø og å'er..

jeg prøver med dette script:

  function sendSingleMail($user,$subject,$message) {
      $to = $this->user->_getEmail($user);
      $replyto = $this->user->_getEmail($this->user->getUserId());
      $from = $this->user->_getEmail($this->user->getUserId());
      $from_name = $this->user->_getFullName($this->user->getUserId());

      $headers = "MIME-Version: 1.0\r\n";
      $headers .= "From: $from_name <$from> \r\n";
      $headers .= "Reply-To: $replyto <" .$replyto . ">\r\n";
      $headers .= "Content-type: text/plain; charset=ISO-8859-1\r\n";
      $headers .= "X-Mailer: PHP/" . phpversion();
      $message .= "\n\n------------------------------------";
      $message .= "\nEmail send from iarbtest.it.dtu.dk";
      mail($to, $subject, $message, $headers);
  }

Men jeg kan ikke få den til at sende æ, ø, å..
de bliver til:
æ ø å

Nogen der kan hjælpe med dette ?
På forhånd tak..

-Ellebæk!
Avatar billede coderdk Praktikant
04. januar 2005 - 10:56 #1
Hmm så sender den alligevel med UTF-8...
Prøv for sjov at ændre:

$headers .= "Content-type: text/plain; charset=ISO-8859-1\r\n";

til:

$headers .= "Content-type: text/plain; charset=utf-8\r\n";
Avatar billede ellebaek Nybegynder
04. januar 2005 - 11:07 #2
Hmm..

mærkeligt nok virker det faktisk næsten...

Nu ser indholdet rigtigt ud i mailen og æ, ø og å kommer frem..

Men jeg forstår ikke helt at den ikke gør det rigtigt på subject..

når mailen bliver vist i outlook express eller i hotmail, så virker æ,ø og å stadig ikke  i oversigten over mails, men hvis jeg går ind i mailen, så bliver subjectet vist rigtigt.
Avatar billede ellebaek Nybegynder
04. januar 2005 - 11:10 #3
det er forresten det samme problem med navn...
Avatar billede coderdk Praktikant
04. januar 2005 - 11:13 #4
Prøv at ændre:

$from_name = $this->user->_getFullName($this->user->getUserId());

til:

$from_name = utf8_decode( $this->user->_getFullName($this->user->getUserId()) );

og tilføj:

$subject = utf8_decode( $subject );
Avatar billede coderdk Praktikant
04. januar 2005 - 11:15 #5
Eller kør dem igennem denne funktion (fra en php.net kommentar):

function encodeISO88591($string)
{
  // ISO-8859-1 string header
  $stringISO = "=?iso-8859-1?q?";

  // Each character are encoded('equal-to' symbol + hexadecimal value from ASCII code)
  for($i=0;$i<strlen($string);$i++)
  {
  // Basic ASCII characters are not encoded
  if(ord(substr($string,$i,1))<1 || ord(substr($string,$i,1))>127)
  {
    $char = ord($string[$i]);
    $char = strtoupper(dechex($char));
    $stringISO.="=".$char;
  }
  else
  {
    $stringISO.=substr($string,$i,1);
  }
  }

  // ISO-8859-1 string footer
  $stringISO.="?= ";

  return($stringISO);
}
Avatar billede ellebaek Nybegynder
04. januar 2005 - 11:29 #6
hmm...

tror vi nærmer os..
men den bikser lidt rundt med tingere..

Men vender lige tilbage om 20 min..
Avatar billede ellebaek Nybegynder
04. januar 2005 - 11:58 #7
smukt...

nu virker det..
Det var kører når jeg bruger utf8_decode..

Tusind tak for hjælpen..
Smid et svar så får du nogle velfortjente points ;-)
Avatar billede coderdk Praktikant
04. januar 2005 - 12:00 #8
Bare i orden :)
Avatar billede ellebaek Nybegynder
04. januar 2005 - 12:17 #9
tak for hjælpen endnu en gang :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester