php - 拉米纳斯邮件。作为 UFT8 发送
问题描述
我使用 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);
解决方案
请查看官方 Dok:
https://docs.laminas.dev/laminas-mail/message/attachments/
类型和字符集是分开定义的。
您可能正在寻找类似的东西:
$html = new MimePart($htmlMarkup);
$html->type = Mime::TYPE_HTML;
$html->charset = 'utf-8';
推荐阅读
- java - 如何从图库中选择全尺寸图像(不是缩略图)?
- c++ - 拷贝构造函数和浅拷贝
- javascript - 为什么单击事件不适用于样式化组件?
- user-interface - Flutter 中是否有 Bootstrap-sass 等价物?
- javascript - 使用 google sheet 脚本从 HTML 中提取元素值
- javascript - JavaScript 为什么不返回退出包含的函数调用?
- coldfusion - 如何遍历 SQL 查询并输出单个电子邮件
- java - Docker 容器 HttpUrlConnection 超时异常
- javascript - jquery-1.11.2.min.js 到 jquery-3.5.1.min.js :对象不支持属性或方法
- java - 从 SQL 插入数据时,为 Jtable 中的不同字段着色