小编Mic*_*son的帖子

带有utf-8编码的php邮件在Microsoft邮件客户端中显示不正确

我搜索并搜索了解决方案,但无济于事.

我正在使用php邮件发送一个混合的文本/ HTML电子邮件,以utf8编码.这是相关的代码:

$headers = "From: $fromPerson\r\n" .
"Content-Transfer-Encoding: 8bit\r\n".
"Reply-To: $fromPerson\r\n" .
"Content-Type: multipart/alternative; boundary=". $mime_boundary_header. "\r\n" .
"X-Mailer: PHP/" . phpversion();

$message = "$notice_text

--$mime_boundary
Content-Type: text/plain; charset='UTF-8'
Content-Transfer-Encoding: 8bit

$textEmail

--$mime_boundary
Content-Type: text/html; charset='UTF-8'
Content-Transfer-Encoding: 8bit

$htmlEmail

--$mime_boundary--";

//mb_detect_encoding($message) returns UTF-8
$mail_sent = @mail( $to, $subject, $message, $headers);
Run Code Online (Sandbox Code Playgroud)

这些消息包含西班牙语以及那些棘手的字符.这些电子邮件在gmail,hotmail(在线Outlook),mac邮件,电话等方面都很好用,但在Windows Live邮件或Microsoft Outlook中却没有.

如果我手动将Windows Live Mail中的默认字体设置为utf8,则消息会正确显示,但不会显示.如果我将来自其他客户端的电子邮件转发到Outlook或windows live,它也会显示正常.

我可以找到工作我敢肯定,但我错过了什么吗?我不想依赖接收器知道如何更改消息的编码,所以我需要添加到电子邮件中以提示这些客户端识别编码吗?

如果这已经在其他地方处理过,我道歉,我会感激任何建议.看起来我应该继续使用PHPMailer来查看是否能解决问题,但出于个人好奇心,了解为什么会发生这种情况会很有趣......

php email encoding utf-8

7
推荐指数
2
解决办法
3万
查看次数

是否可以在 docker 容器内使用 npm serialPort?

我有一个node项目,在ubuntu的docker容器中运行,主机也是ubuntu。

在我的节点项目(用打字稿编写)中,我尝试使用 npm 串行端口库。

https://www.npmjs.com/package/serialport

我有以下几行:

include * as serialport from 'serialport'

// further down

serialport.list((err, list) => {

    // after checking for errors
    console.log(list);

});
Run Code Online (Sandbox Code Playgroud)

现在,如果我在主机上运行此代码,我会得到包含大量信息的结果列表。例如,对于一台设备:

{ manufacturer: 'Prolific Technology Inc.',
serialNumber: undefined,
pnpId: 'usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0',
locationId: undefined,
vendorId: '067b',
productId: '2303',
comName: '/dev/ttyUSB0' }
Run Code Online (Sandbox Code Playgroud)

但是当我在 docker 容器中运行相同的代码时,我得到以下结果:

{ manufacturer: undefined,
 serialNumber: undefined,
 pnpId: undefined,
 locationId: undefined,
 vendorId: undefined,
 productId: undefined,
 comName: '/dev/ttyUSB0' }
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,大多数信息返回为未定义。

这样做可以为 docker 容器提供特权状态和对 /dev 卷的访问权限。例如在 docker-compose 中

myapp:
 image: myappimage
 ports: 8999:8999
 volumes:
   - /dev:/dev …
Run Code Online (Sandbox Code Playgroud)

ubuntu node.js node-serialport docker

1
推荐指数
1
解决办法
1355
查看次数

标签 统计

docker ×1

email ×1

encoding ×1

node-serialport ×1

node.js ×1

php ×1

ubuntu ×1

utf-8 ×1