» Poradna » Ostatní

Předmět v phpmaileru

 |   |  Microsoft Windows 10 Firefox 70.0

Dobrý den všem, předem se omlouvám odborníkům za laický dotaz. Mám problém s phpmailerem verze 5.1, kdy se v odeslaných mailech místo Předmětu objevuje "=?UTF-8?Q??=". Odesílací php soubor nám programoval externí dodavatel, ale ten není k dispozici. Jsem jenom DTP operátor a musím to vyřešit sám. Položka Předmětu obsahuje php kód $mail->Subject = ('Objednávka č.'.$cislo_objednavky); Přičemž ale objednávky chodí kódované v češtině správně.Mohu poprosit o radu případně jaké další informace jsou k tomu třeba? Díky.

Mohlo by vás také zajímat

Odpovědi na otázku

 | Macintosh OS X AppleMAC-Safari 5.0

Vlozte sem celej radek z kodu, kde je ta kriticka pasaz. Asi tam je chybne base encode ...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 78.0.3904.108

$recipient = 'xxx@xxx.cz';$sender = 'xxx@xxx.cz';header("Access-Control-Allow-Origin: *");try{if (strtoupper($_SERVER['REQUEST_METHOD']) !== 'POST'){throw new ErrorException('Method Not Allowed (please use POST)', 405); } $data = unserialize(base64_decode($_POST['_data'])); $_POST = unserialize(base64_decode($_POST['_post'])); ob_start(); $cislo_objednavky = 1 + (int) file_get_contents('cpo/cpo.txt'); require 'tabulka.php'; $body = ob_get_contents(); ob_end_clean(); require 'phpmailer/class.phpmailer.php';$mail = new PHPMailer(TRUE);$mail->CharSet = 'UTF-8';$mail->Host = "xxx.xxxx.cz"; $mail->SMTPAuth = true;$mail->Port = 25;$mail->Username = "xxx@xxx.cz"; $mail->Password = "xxxxx";$mail->Encoding = 'base64';$mail->AddAddress($recipient);$mail->SetFrom($sender, 'XXXXXX');$mail->AddReplyTo($sender);$mail->AddCC($_POST['email']);$mail->Subject = ('Objednávka č.'.$cislo_objednavky);$mail->MsgHTML('html tělo mailu');$mail->Send();file_put_contents('xxxx.xxx', $cislo_objednavky);}catch (Exception $e){header('HTTP/1.0 '.$e->getCode().' '.$e->getMessage());echo '<h1>'.($e->getMessage().' (#'.$e->getCode().')').'</h1>';exit;}Toto je kód. Díky :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Macintosh OS X AppleMAC-Safari 5.0

A kdyz odstranite ty zavorky? $mail->Subject = 'Objednávka č. '.$cislo_objednavky;

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 70.0

Díky, zjistil jsem, že funguje obojí. Ale blbne to nějakým divným způsobem:funguje $mail->Subject ='Přijetí Vaší objednávky č. '.$cislo_objednavky; nefunguje $mail->Subject ='Přijetí objednávky č. '.$cislo_objednavky; (v předmětu je =?UTF-8?Q??=). Obecně jednou tam napíšu testovací znaky a ty projdou vč. kódování a délky. Pak ten text přepíšu a mail prijde bez předmětu. Takže dokola měním text - nejdřív bez českých znaků, pak s mezerami nebo bez mezer, pak zase s českými znaky. Buď Předmět funguje anebo ne. Už mi z toho hrabe :D

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Firefox 70.0

Také by to chtělo ověřit kódování samotného zdrojového souboru, případně uložit v UTF-8. Jinak doufám, že ten externí dodavatel není k dispozici proto, že ho za podobný kód už někdo zamordoval :D

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 70.0

Kódování je UTF-8. Mám asi nějaký problém se samotnou editací php souboru, což zatím morduje pouze mě Příklad: dám do subjectu "čřčšíčšíýíčšýčý" a číslo objednávky, přijde správně čřčšíčšíýíčšýčý a číslo objednávky. Pak změním čřčšíčšíýíčšýčý na "Přijetí objednávky č. " a přijde to (bez předmětu). To ale není všechno, v uvedeném kódu je smtp server, který to ignoruje a maily se odesílají skrz hosting, kde je php formulář Shrnutí: jdu si zadat poptávku na externího dodavatele dám za to někomu peníz.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Předmět, Externí dodavatel, Objednávka, Dodavatel