Już pół dnia się zastanawiam i nie potrafię znaleźć rozwiązania.
$tr = new Zend_Mail_Transport_Smtp($this->config->mail->host, $this->config->mail->config->toArray()); $mail = new Zend_Mail('UTF-8'); $mail->setBodyText($this->translate->_('Buyer:').' '.$this->cart->agentdata['name']."<br />".$this->translate->_('Agent number').': '.$this->cart->agentdata['number'].PHP_EOL); $mail->setBodyText($mail->getBodyText(true).'<table><tr><th>'.$this->translate->_('Product').'</th><th>'.$this->translate->_('Amount').'</th><th>'.$this->translate->_('Points for each')."</th><th>".$this->translate->_('Price for each').'</th><th>'.$this->translate->_('Total points').'</th><th>'.$this->translate->_('Total price').'</th></tr>','UTF-8'); $mail->addTo($this->config->mail->to); $mail->setSubject($this->translate->_('New order:').' '.$orderid); $productslist = $this->db->fetchAll("SELECT * FROM `orderedproducts` RIGHT JOIN `products` USING (productid) WHERE orderid=$orderid"); foreach($productslist as $product) { $mail->setBodyText($mail->getBodyText(true).'<tr><td><a href="/products/category/id/'.$product['categoryid'].'/product/'.$product['productid'].'/">'.$product['product']."</a></td>\n<td>".$product['amount'].'</td><td>'.$product['points']."</td>\n<td>".number_format($product['price'],2,'.','').' €</td><td>'.$product['points']*$product['amount']."</td>\n<td>".number_format($product['price']*$product['amount'],2,'.','').' €</td></tr>'."\n",'UTF-8'); } $mail->setBodyText($mail->getBodyText(true).'</table>'); $mail->send($tr);
W wyniku tego kodu dostaję maila o takiej treści:
Cytat
Nabywca: fbnjgkhk<br />Numer przedstawiciela: 656575=3D3D0A<table><tr><t=
h>=3D=0AProdukt</th><th>Ilosc</th><th>Punkty za jeden</th><th>Cena za je=
den</th>=3D=0A<th>Suma punktow</th><th>Calkowita cena</th></tr><tr><td><=
a href=3D"/products/category/id/1/product/1/">Cem-Tech</a></td>=0A<td>1<=
/td><td>0</td>=0A<td>45.00 €</td><td>0</td>=0A<td>45.00 €</td>=
</tr>=0A</table>
h>=3D=0AProdukt</th><th>Ilosc</th><th>Punkty za jeden</th><th>Cena za je=
den</th>=3D=0A<th>Suma punktow</th><th>Calkowita cena</th></tr><tr><td><=
a href=3D"/products/category/id/1/product/1/">Cem-Tech</a></td>=0A<td>1<=
/td><td>0</td>=0A<td>45.00 €</td><td>0</td>=0A<td>45.00 €</td>=
</tr>=0A</table>
W miejscu gdzie miał być EOL wstawiło mi "=3D3D0A"
a jak używam \n to wstawia "=0A"
A jak dzieli tekst na linie po 76 znaków to na koniec dodaje =
No i nie wiem dlaczego gdzieniegdzie dodało inne znaki.
Zamieniało również polskie znaki to na razie zamieniłem je na litery bez języczków ale prawdopodobnie zamienia je z tego samego powodu.
PS: wiem że aby wysyłać maila HTML mam używać setBodyHtml i getBodyHtml używam tekst aby mi nie ukrywało znaczników i widzieć gdzie dokładnie mi wciska te napisy. Bo jako HTML jest to samo.