Контекст

$ echo $LANG
fr_FR.UTF-8

Проблема

Хотя в имени отправителя могут быть диакритические знаки, mail, похоже, не принимает их в имени получателя:

  • mail -s "Test" -r "Denis Bitouzé <denis.bitouze@test.fr>" "Denis Bitouze <denis.bitouze@test.org>" < /dev/null ОК, возвращает (слепой перевод с французского): mail: Message content empty; hopes it's correct
  • mail -s "Test" -r "Denis Bitouzé <denis.bitouze@test.fr>" "Denis Bitouzé <denis.bitouze@test.org>" < /dev/null не в порядке, возвращает (слепой перевод с французского): mail: Impossible to parse the address « Denis Bitouzé <denis.bitouze@test.org> » (when expanding « Denis Bitouzé <denis.bitouze@test.org> ») : Wrong address syntax

Вопрос

Возможно ли, чтобы имя получателя mail содержало диакритические знаки?

1
Denis Bitouzé 12 Фев 2020 в 17:41
Каким почтовым транспортным агентом вы пользуетесь? постфикс? Отправить почту ? должен быть какой-то параметр, говорящий об использовании 8-битного символа.
 – 
Archemar
12 Фев 2020 в 17:44
Если я уверен, что это не sendmail (не установлен в моей системе), я должен признать, что я не уверен в postfix (установлен в моей системе). Как это проверить?
 – 
Denis Bitouzé
12 Фев 2020 в 18:01
Денис, извините за поздний ответ. Как видите, один простой вопрос заставил меня погрузиться в кроличью нору и перестроить свой сервер Postfix на более современную версию. В любом случае, у вас была интересная задача для решения!
 – 
F1Linux
15 Мар 2020 в 13:52

1 ответ

Короткий ответ:

Да, можно отправлять электронные письма получателям с диакритическими знаками. ОДНАКО:

Поддержка как отправляющего почтового сервера, принимающего почтового сервера , так и всех SMTP-серверов, которые направляют почту между ними ДОЛЖНА поддерживать кодировку UTF8.

Из приведенных ниже тестов с использованием gMail для отправки электронной почты с акцентированным символом это означает, что gMail имеет необходимую поддержку UTF8 (даже если они не позволили мне создать учетную запись электронной почты с акцентированными символами) для маршрутизации такой почты.

Длинный ответ:

Ранее я тестировал отправку почты получателям с диакритическими знаками в адресе электронной почты с помощью Postfix версии 2.2. Не по своему выбору, а потому, что это была последняя поддерживаемая версия в репозитории RHEL7 моего почтового сервера. После того, как все мои тесты по отправке почты на эти учетные записи не увенчались успехом, я немного покопался и нашел в Postfix README что:

... Представленный в Postfix версии 3.0, он полностью поддерживает UTF-8. адреса электронной почты и значения заголовков сообщений UTF-8.

Таким образом, из этого предложения поддержка неанглийских символов во многом оказалась функцией поддержки в самом приложении SMTP. Поэтому я развернул виртуальную машину RHEL 8 AWS и настроил на ней Postfix версии 3.3.1, чтобы проверить поддержку UTF8.

Я настроил учетную запись электронной почты "tèrrence@test.com" и отправил на нее почту из учетной записи gMail.

Сторона клиента:

Вы заметите из заголовка, что почта, отправленная на этот счет, попала туда. (Обратите внимание, что я изменил имя почтового сервера, адрес отправителя и домен получателя в приведенном ниже выводе):

Return-Path: <testSender@gmail.com>
X-Original-To: tèrrence@test.com
Delivered-To: tèrrence@test.com
Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=209.85.222.196; helo=mail-qk1-f196.google.com; envelope-from=testSender@gmail.com; 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èrrence@test.com>; Thu, 12 Mar 2020 16:49:12 +0000 (GMT)
Received: by mail-qk1-f196.google.com with SMTP id p62so7358902qkb.0
        for <tèrrence@test.com>; 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 <testSender@gmail.com>
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èrrence@test.com
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; envelope-from=testSender@gmail.com; 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=<testSender@gmail.com>, size=6579, nrcpt=1 (queue active)
postfix/virtual[xxxx]: EA3BB1C226AE: to=<tèrrence@test.com>, 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 с другими альтернативами.

1
F1Linux 12 Мар 2020 в 22:20
Вы имеете в виду, что é следует писать =C3=A9?
 – 
Denis Bitouzé
12 Фев 2020 в 18:03
1
Вау, это очень глубокая кроличья нора. Нахожусь в процессе обновления своего ответа; будет сделано в ближайшее время-
 – 
F1Linux
12 Фев 2020 в 18:42
Я ожидал, что клиент mail выполнит это изменение символов.
 – 
roaima
12 Фев 2020 в 19:24