Ламины-почта. отправить как UFT8 - PullRequest
0 голосов
/ 21 июня 2020

Я работаю с Laminas (бывший Zendframework 3). Я хочу отправить письмо с помощью Laminas-Mail. Я не знаю, как изменить Content-Type . В настоящее время это Content-Type: text/html, но я хочу отправлять письма UTF8, поэтому я хочу использовать Content-Type: text/html; charset=utf-8.

Я пытался изменить $html->type, но мне это не удалось.

use Laminas\Mail;
use Laminas\Mail\Transport\Smtp as SmtpTransport;
use Laminas\Mail\Transport\SmtpOptions;
use Laminas\Mime\Message as MimeMessage;
use Laminas\Mime\Part as MimePart;

# ...
# much code
# ...

// Produce HTML
$bodyHtml = $this->viewRenderer->render('mymodule/email/email1');
$html = new MimePart($bodyHtml);
$html->type = "text/html; charset=utf-8"; #Seems not to work
$body = new MimeMessage();
$body->addPart($html);
$mail = new Mail\Message();
$mail->setEncoding('UTF-8');
$mail->setBody($body);
$mail->setFrom('bobafit@example.com','Boba Fit');
$mail->addTo('bobafit@example.com','Boba Fit');
$mail->setSubject('Thank you for reading my Question');
// Setup SMTP transport
$transport = new SmtpTransport();
$options   = new SmtpOptions($this->config['smtp']);
$transport->setOptions($options);
$transport->send($mail);

1 Ответ

2 голосов
/ 21 июня 2020

Пожалуйста, проверьте официальный документ:

https://docs.laminas.dev/laminas-mail/message/attachments/

Тип и кодировка определяются отдельно.

Вероятно, вы ищете что-то вроде что:

$html = new MimePart($htmlMarkup);
$html->type = Mime::TYPE_HTML;
$html->charset = 'utf-8';
...