mb_encode_mimeheader / mb_decode_mimeheader în PHP

Codează un text pentru un antet de email (de exemplu subiectul cu diacritice); mb_decode_mimeheader îl decodează.

Sintaxă
mb_encode_mimeheader(string $string, ?string $charset = null, ?string $transfer_encoding = null, string $newline = "\r\n", int $indent = 0): string

Ce face mb_encode_mimeheader / mb_decode_mimeheader

Antetele de email (subiect, nume expeditor) acceptă doar caractere ASCII. Textul cu diacritice trebuie codat în forma =?UTF-8?B?...?=. mb_encode_mimeheader face această codare și rupe antetele lungi pe mai multe rânduri.

$transfer_encoding poate fi "B" (Base64, implicit) sau "Q" (quoted-printable). mb_decode_mimeheader transformă un antet primit înapoi în text normal.

Parametri

Parametru Descriere
$string Textul antetului.
$charset Opțional. Codarea folosită în antet. Implicit, cea dată de mb_language (UTF-8).
$transfer_encoding Opțional. "B" sau "Q".
$newline Opțional. Separatorul de rând pentru antetele lungi.
$indent Opțional. Câte caractere ocupă deja numele antetului pe primul rând.

Ce returnează

Antetul codat (respectiv decodat).

Exemple

Exemplul 1: Subiectul unui email

<?php
$subiect = mb_encode_mimeheader("Comandă confirmată", "UTF-8", "B");
echo "Subject: $subiect\n";

echo mb_encode_mimeheader("Comandă confirmată", "UTF-8", "Q") . "\n";
echo mb_decode_mimeheader($subiect);

Rezultat

Subject: =?UTF-8?B?Q29tYW5kxIMgY29uZmlybWF0xIM=?=
=?UTF-8?Q?Comand=C4=83=20confirmat=C4=83?=
Comandă confirmată

Greșeli frecvente

  • Trimiți cu mail un subiect cu diacritice necodat. Unele programe de email afișează caractere ciudate. Codează subiectul sau folosește mb_send_mail, care o face automat.

Comenzi înrudite

  • mb_send_mail: Trimite un email ca mail(), dar codează automat subiectul și corpul mesajului după limba setată cu mb_language.
  • quoted_printable_encode / quoted_printable_decode: Codează un text în formatul quoted-printable folosit în emailuri; quoted_printable_decode îl decodează.
  • mb_language: Setează sau returnează limba folosită de mbstring la codarea emailurilor trimise cu mb_send_mail.