Autor Zpráva
TomasJ
Profil
Zdravím.
Mám takový problém. Včera jsem si testoval posílání e-mailu s typem obsahu text/html.
Na mém účtu na seznam.cz mi vše chodilo krásně. Testoval jsem to cca 15x. Pak jsem tedy rozeslal e-maily 36ti uživatelům.
Kamaráda jsem se zeptal, jestli mu přišel e-mail správně. On vlastní e-mailovou schránku na centrum.sk.
No a můžete kouknout sami:
Můj e-mail:
SA-MP The San Fierro City
Tento E-Mail je určený účtu, vedenému pod nickem XXX se zadaným E-Mailem XXX@XXX.XX

Dobrý den. Z důvodu velkých oprav serveru, byl server pozastavený na delší dobu a pomalu se blíží termín znovuspuštění.

V Tomto E-Mailu najdete pokyny, jak váš účet reautorizovat. K čemu je to dobré?

V první řadě zjistíme, jestli váš účet máme ponechat, nebo ho kompletně smazat.
V případě zájmu, potvrdíte, že chcete mít vedený účet na našem serveru.
Dále zjistíme, zda vám tento E-Mail vůbec přišel. Pokud nemáte zájem mít aktivní účet, i tak čtěte dále. Děkujeme.

Ačkoliv žádný již existující účet už nemá poslední získané pozice, máme pro vás BONUS!
Každý potvrzený účet dostane do nového začátku skóre 120 (nahrané minuty) a 40000$!


Důkladně si pročtěte následující pokyny:
Pokud si chcete autorizovat účet a získat tak bonusy, klikněte zde.

Pokud již nechcete mít účet aktivní, i tak vás prosíme o kliknutí zde. Zjistíme, že jste si tento E-Mail přečetli.



Informace o spuštění serveru oznámíme na našich webových stránkách.

Tým The San Fierro City vám děkuje za pozornost.
Odesláno z webu: XXXXXXXXXXXXX

No a tady je jeho zpráva:
SA-MP The San Fierro City
Tento E-Mail je určený účtu, vedenému pod nickem XXXX se zadaným E-Mailem XXXX@XXX.XX

Dobrý den. Z důvodu velkých oprav serveru, byl server pozastavený na delší dobu a pomalu se blíží termín znovuspuštění.

V Tomto E-Mailu najdete pokyny, jak váš účet reautorizovat. K čemu je to dobré?

V první řadě zjistíme, jestli váš účet máme ponechat, nebo ho kompletně#͵и4(XgEl԰}ɓєєЁٕ5Ё͕ٕԸ4(驥鑄ѕѼ5eAՐєЁѥٻ5ах5mєmթ4(4(5؃��ի5Ё��}ͱͭ}饍屔 ɼ́ =9UL4(-}镻5Ёх7ѭԁͯɔɅ䤁4(4(4(lͤɿ5mєͱի}4(AՐͤєѽɥمЃ5Ёͭх屔 윁ɕ輽ͅ9йͬɕѥمєa)%X)HץwTԥ7UDԥ#sƖIFROOBBYqoX]Hp]0#Y]Z]KHZ\[YHH[OI܎͌̐NYI[\ܙXX]]KO[ގTSS^[TޓUSQS]]^SIϚZ۝]0HOO\0[YK1oHHH[KSXZ[1fYq#Y]KBBBB[ܛXXHqh]1&۰H\\Hޛ[p[YHHqhZXXݰX[XB0[HH[OI܎͌̐NYI[\ϕH[Y\]OO[H1&ZHHޛܛB\0[XNH[OI܎͌̐NYI[\Ϛ

Nedokážu si to vysvětlit. Kód pro zasílání mailů s diakritikou, jsem použil z místní FAQ.
Upravil jsem formát text/plain; na text/html;
Tedy takto:
function autoUTF($s){
  if(preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s)){return $s;}
  if(preg_match('#[\x7F-\x9F\xBC]#', $s)){return iconv('WINDOWS-1250', 'UTF-8', $s);}
  return iconv('ISO-8859-2', 'UTF-8', $s);
}

function cs_mail($to, $sub, $msg, $head = ""){
  $sub = "=?utf-8?B?".base64_encode(autoUTF ($sub))."?=";
  $head .= "\nMIME-Version: 1.0\n";
  $head .= "Content-Type: text/html; charset=\"utf-8\"\n";
  $head .= "Content-Transfer-Encoding: base64\n";
  $msg = base64_encode(autoUTF ($msg));
  return mail($to, $sub, $msg, $head); 
}

Kdyby někdo chtěl vidět funkci na poslání e-mailu, není problém, můžu ji sem hodit taky.
soucekgns
Profil
Nevím, proč to tak komplikuješ. Na PHP.net je to hezky vysvětlené.
Používám toto (bez problémů):
<?php
ini_set("sendmail_from", "info@mojestranka.cz");

$to  = $jmeno." ".$prijmeni." <".$email.">";
$subject = "Předmět";
$message = "Dobrý den... lalala!";

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "From: Moje stránka <info@mojestranka.cz>\r\n";

mail($to, $subject, $message, $headers);
?>
Snad ti to pomůže.
TomasJ
Profil
Vyzkouším to, zatím díky :)

EDIT: Zatím se zdá že to funguje, ještě počkám, co ten kamarádův.
EDIT 2: Tak to funguje skvěle. Díky moc! :-)

Asi by bylo dobré tohle dát do FAQ místo toho co tam je. :)
Davex
Profil
TomasJ:
Asi by bylo dobré tohle dát do FAQ místo toho co tam je.
Já tedy nevím, v čem byla opravdová příčina problému, ale teď vypadá kód v PHP FAQ trochu jinak než ten tvůj, takže předpokládám, že to v něm bylo už dávno opraveno.



Zmíněný problém s poškozením dlouhého textu u některých příjemců byl v PHP FAQ opraven před rokem.
Alphard
Profil
FAQ se postupně upravuje, ale jen drobnosti.
Kód soucekgns [#2] předpokládá utf-8, funkce autoUTF() ho zajišťuje. To byla ve své době hlavní výhoda, protože se tady neustále střídali lidé s různým kódováním a zjistit, co používají, bývalo na 5 příspěvků. Dnes už se možná víc rozšířilo utf.
Ke zvážení je použití base64.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: