Autor Zpráva
Jont
Profil
Ahoj, s tímto si fakt nevím rady. Chci přes php odeslat email a do hlaviček dát od koho je a taky kódování, aby byla dobře čeština.
Hlavičky by tedy měly bít takhle:
$hlavicky = "MIME-Version: 1.0 Content-type: text/html; charset=iso-8859-1 From: email@neco.cz";

Když dám ale funkci
mail($email, $predmet, $text, $hlavicky)
,
tak to napíše, že
"sendmail_from" not set in php.ini or custom "From:" header missing"
na tom řádku, kde je ta funkce mail.
Když dám From na začátek, tak se vypíše, že
SMTP server response: 550 5.1.0 <webnas@centrum.cz MIME-Version: 1.0 Content-type: text/html; charset=iso-8859-1 From: birthday@example.com> malformed address: MIME-Version: 1.0 Content-type: may not follow <webnas@centrum.cz
Ani když jsem dal pryč to Content type, Mime nebo charset tak byla pořád ta chyba.

Když ale nechám ve hlavičkách jenom From, tak se email normálně odešle.
Fakt nevím co s tím, pomůžete prosím? Bez kódování je špatně čeština a navíc by to mělo být odeslána s tím vším. Dík moc.
BetaCam
Profil
Jont
1) každá hlavička musí být na samostatném řádku.
2) charset=iso-8859-1 tak s timhle kódováním teda určitě mail česky mít nebudeš.
Jont
Profil
Tak jsem to dal na samostatné řádky o funguje to. Ale i s kódováním utf8 byla čeština v předmětu špatně, tak jsem si našel funkci na kódování hlavičky emailu

function encodeMailHeader ($string, $charset = 'windows-1250')
		{
   		return sprintf ('=?%s?B?%s?=', strtoupper ($charset),base64_encode ($string));
		}


a když jsem dal $predmet=encodeMailHeader('nějaký dobrý předmět'); tak to funguje.

Akorát se mi nějak nedaří udělat to stejné pro odesílatele, tedy dám tam
From:". encodeMailHeader('Někdo') ."<honza@centrum.cz> \n";
dostávám chybu
SMTP server response: 550 5.1.0 <=?WINDOWS-1250?B?TuxrZG8=?=<honza@centrum.cz> > '@' or '.' expected after '=?WINDOWS-1250?B?TuxrZG8=?=
Tohle se děje na lokálu, na webu to funguje (něco špatně v php.ini?).

Takže bez toho překódování čeština ve předmětu nefunguje, jo? Můj problém je už snad vyřešený, ale jméno odesílatele by bylo také dobré uvést. Dík za předešlou i budoucí radu :).
Alphard
Profil
FAQ

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:

0