Autor Zpráva
Pavel Straka
Profil
Dobrý večer, rád bych poprosil o radu se skriptem na posílání příloh mailu, funguje mi v pořádku, až na jednu věc - české kódování.
Odkaz na skript je zde: http://interval.cz/clanky/jak-v-php-poslat-e-mail-s-prilohou-pomoci-mime-tridy/

Pokoušel jsem se klasicky přidat do hlaviček e-mailu kódování:
   $mail->headers = "MIME-Version: 1.0\r\n";   
   $mail->headers .= "Content-Type: text/plain; charset=\"iso-8859-2\"\r\n"; 

ale to celou funkci rozhodí, nepřijde mi v mailu příloha, ale jen e-mail plný paznaků.

Neměl by někdo, prosím, nápad, jak skript zprovoznit s českými znaky?
Děkuji za pomoc.
Alphard
Profil
Pavel Straka:
Váš zápis mezi \n sekvence zanáší \r\n, navíc za druhou vaši hlavičkou následně vznikne \r\n\n. Nevím, jestli je to příčina problému, taky by mohlo docházet ke kolizi s jinou hlavičkou, ale vzhledem k tomu, že třída je psaná pro PHP 4, podíval bych se po něčem novějším. Osobně bych použil třídu z Nette, tím ji ale nevnucuji :-)
Pavel Straka
Profil
Teď jsem to vyřešil. Problém byl v tom, že ta třída měla to kódování řešené až v body a ne v headers a to jsem včera nějak přehlédl.
Takže jsem toto:
function build_multipart() {
       $boundary = "b".md5(uniqid(time()));
       $multipart =
       "Content-Type: multipart/mixed; boundary = $boundary\n\nThis is a MIME encoded message.\n\n--$boundary";
       for($i = sizeof($this->parts)-1; $i >= 0; $i--)
       {
       $multipart .= "\n".$this->build_message($this->parts[$i]).
       "--$boundary";
     }

jen upravil na toto:
function build_multipart() {
       $boundary = "b".md5(uniqid(time()));
       $multipart =
       "Content-Type: multipart/mixed; charset=\"windows-1250\" boundary = $boundary\n\nThis is a MIME encoded message.\n\n--$boundary";
       for($i = sizeof($this->parts)-1; $i >= 0; $i--)
       {
       $multipart .= "\n".$this->build_message($this->parts[$i]).
       "--$boundary";
     }

Děkuju za pomoc.

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