如何在 SMTP RCPT TO 命令中使用扩展 ASCII 字符

问题描述 投票:0回答:1

在 Postfix 服务器上尝试使用 PowerShell 或 System.Web.Mail.SmtpMail .NET 类向具有扩展 ASCII 字符的收件人发送电子邮件时,出现以下错误:

The client or server is only configured for E-mail addresses with ASCII local-parts: livelink+264096812$£&@mytenant.onmicrosoft.com

The server rejected one or more recipient addresses. The server response was: 500 5.5.2 Error: bad UTF-8 syntax

英镑符号“£”很可能是罪魁祸首,因为它是唯一的非 7 位/扩展 ASCII 字符。

我到处搜索了如何在收件人地址中使用扩展 ASCII 字符的实际示例,但似乎没有任何效果。我知道这是可行的,因为我可以从 Outlook 成功向该邮箱发送电子邮件。但我无法从 PowerShell 命令行进行操作。我的 Postfix 服务器是最新的,并配置了 8BITMIME 和 SMTPUTF8 支持。

我非常感谢您的帮助!

powershell utf-8 smtp postfix-mta extended-ascii
1个回答
0
投票

很可能您必须将字符串编码为仅 ASCII 范围字符的字符串,并使用 Punycode:

# -> 'xn--livelink+264096812$&@mytenant-t4a.onmicrosoft.com'
[System.Globalization.IdnMapping]::new().GetAscii('livelink+264096812$£&@mytenant.onmicrosoft.com')
© www.soinside.com 2019 - 2024. All rights reserved.