语境
$ echo $LANG
fr_FR.UTF-8
问题
虽然发件人姓名中可以有重音符号,但mail
收件人姓名中似乎不接受它们:
mail -s "Test" -r "Denis Bitouzé <[email protected]>" "Denis Bitouze <[email protected]>" < /dev/null
OK,返回(法文盲译):mail: Message content empty; hopes it's correct
mail -s "Test" -r "Denis Bitouzé <[email protected]>" "Denis Bitouzé <[email protected]>" < /dev/null
不行,返回(法文盲译):mail: Impossible to parse the address « Denis Bitouzé <[email protected]> » (when expanding « Denis Bitouzé <[email protected]> ») : Wrong address syntax
问题
mail
收件人姓名可以包含重音符号吗?
答案1
简短回答:
是的,可以向带有重音字符的收件人发送电子邮件。然而:
发送邮件服务器、接收邮件服务器均支持以及在它们之间路由邮件的所有 SMTP 服务器必须支持 UTF8。
从下面使用 gMail 发送带有重音字符的电子邮件的测试来看,这意味着 gMail 具有所需的 UTF8 支持(即使他们不允许我创建带有重音字符的邮件帐户)来路由此类邮件。
长答案:
我之前测试过使用以下方法向电子邮件地址中包含重音字符的收件人发送邮件后缀版本 2.2。不是出于选择,而是因为它是我的邮件服务器的 RHEL7 存储库中最后支持的版本。在我向这些帐户发送邮件的所有测试都失败后,我进行了一些挖掘并发现后缀自述文件那:
...介绍了后缀版本3.0,这完全支持 UTF-8 电子邮件地址和 UTF-8 消息标头值。
因此,从这句话来看,对非英语字符的支持似乎很大程度上是 SMTP 应用程序本身支持的功能。因此,我启动了一个 RHEL 8 AWS VM 并配置后缀版本 3.3.1在其上测试 UTF8 支持。
我配置了一个电子邮件帐户“tè[电子邮件受保护]" 并从 gMail 帐户向其发送邮件。
客户端:
您将从标题中注意到发送到此帐户的邮件已到达那里。 (注意我在下面的输出中更改了电子邮件服务器的名称、发件人地址和收件人域):
Return-Path: <[email protected]>
X-Original-To: tè[email protected]
Delivered-To: tè[email protected]
Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=209.85.222.196; helo=mail-qk1-f196.google.com; [email protected]; receiver=<UNKNOWN>
Received: from mail-qk1-f196.google.com (mail-qk1-f196.google.com [209.85.222.196])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
(No client certificate requested)
by mail.postfix3server.org (Postfix) with UTF8SMTPS id EA3BB1C226AE
for <tè[email protected]>; Thu, 12 Mar 2020 16:49:12 +0000 (GMT)
Received: by mail-qk1-f196.google.com with SMTP id p62so7358902qkb.0
for <tè[email protected]>; Thu, 12 Mar 2020 09:49:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20161025;
h=mime-version:from:date:message-id:subject:to;
bh=+sxzWGIhDj27WByaDTDqzH+gvh5YvxK7AK8RkDc6r3g=;
b=Blu+ <SNIP> cd
wgdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20161025;
h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
bh=+sxz <SNIP> rwK
L7Uw==
X-Gm-Message-State: ANhLgQ2NC <SNIP> aBaUf
X-Google-Smtp-Source: ADFU+v <SNIP> KwMI=
X-Received: by 2002:ae9:dcc1:: with SMTP id q18 <SNIP> 88368;
Thu, 12 Mar 2020 09:48:08 -0700 (PDT)
MIME-Version: 1.0
From: Terrence Houlahan <[email protected]>
Date: Thu, 12 Mar 2020 16:47:31 +0000
Message-ID: <CAG6EasLnB4w_XzXPL4LcTuWrDWsQsvkGDj1-SSTgtJTzk_r0Cg@mail.gmail.com>
Subject: Test 1 sending accented characters
To: tè[email protected]
Content-Type: multipart/alternative; boundary="0000000000001927fa05a0ab1ec0"
--0000000000001927fa05a0ab1ec0
Content-Type: text/plain; charset="UTF-8"
.
注释上面的行:
by mail.postfix3server.org (Postfix) with UTF8SMTPS
服务器端:
从/var/log/maillog
带有重音字符的地址的接收邮件服务器上:
postfix/smtpd[xxxx]: Anonymous TLS connection established from mail-qk1-f196.google.com[209.85.222.196]: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
policyd-spf[xxxx]: prepend Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=209.85.222.196; helo=mail-qk1-f196.google.com; [email protected]; receiver=<UNKNOWN>
postfix/smtpd[xxxx]: EA3BB1C226AE: client=mail-qk1-f196.google.com[209.85.222.196]
postfix/cleanup[xxxx]: EA3BB1C226AE: message-id=<CAG6EasLnB4w_XzXPL4LcTuWrDWsQsvkGDj1-SSTgtJTzk_r0Cg@mail.gmail.com>
mail postfix/qmgr[xxxx]: EA3BB1C226AE: from=<[email protected]>, size=6579, nrcpt=1 (queue active)
postfix/virtual[xxxx]: EA3BB1C226AE: to=<tè[email protected]>, relay=virtual, delay=0.32, delays=0.31/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir)
postfix/qmgr[xxxx]: EA3BB1C226AE: removed
结论:
所以,是的,您可以使用重音字符来发送/接收邮件,但前提是支持路由邮件的 SMTP 服务器链来解释它们。我们看到 gMAil 可以做到这一点,正确配置的 Postfix 服务器版本 3 或更高版本也可以做到这一点。然而,我的测试仅限于 Postfix,并且无法对其他替代方案的 UTF8 兼容性做出任何断言。