Фраза RFC 822 входящей почты не помещается в кавычки, если она содержит специальные символы
Я задал этот вопрос в Stackoverflow; Меня попросили повторить это здесь, на сервере. Пожалуйста, имейте в виду, что в первую очередь я разработчик Domino; мои знания относительно администрирования Domino и других серверных систем несколько ограничены, поэтому, пожалуйста, будьте терпеливы;)
Прежде всего: задействованным программным обеспечением является сервер Domino 9.0.1, стандартный клиент Notes 9.0.1, а также сервер Exchange на стороне отправителя (версия на данный момент мне неизвестна)
Имя клиента содержит специальные немецкие символы ("ß"), и он также несет "Доктор" в качестве заголовка. В системе MS Exchange его компании он зарегистрирован под своим полным именем (я назову его "Доктор Вальтер Вайс"); его письма рассылаются по следующей схеме:
Weiß, Rupert, Dr. <Rupert.Weiss@somecompany.de>
Если наш сервер Domino получает письма от той компании, в которой он является отправителем, или от одного из членов в поле COPYTO письма, то часть фразы RFC 822 его имени отправляется без кавычек, как показано выше.
Если сейчас я отвечу на эти письма, то Notes, очевидно, разделит фразу на три разных имени: Rupert
, Dr. <Rupert.Weiss@somecompany.de>
а также Weiß
именно в таком порядке. Следующее, что происходит, это то, что мой почтовый клиент, очевидно, теперь ищет имена во всех зарегистрированных адресных книгах, которые могут привести к действительным почтовым адресам для Weiß
а также Rupert
, К сожалению, в одном из каталогов есть кто-то по имени Marianne Ruppert
и она вскопала, решая имя Rupert
(опять же, имена были изменены, чтобы защитить невинных, но, пожалуйста, обратите внимание на несколько отличную орфографию между фамилией мисс Рупперт и фамилией г-на Вайса...), работающей в совершенно другой компании, и, конечно, это случается так часто, что кто-то в нашей компании не понимает этого и отправляет вещи не тому человеку.
Мы попросили Google об этом и нашли несколько подсказок, касающихся исправлений для сервера Exchange, и некоторых флагов, которые можно установить на нашем принимающем сервере Domino (RFC822StripUnquotedDelimiters=1
). Флаг на нашей стороне был установлен (каталог Domino >> Настройки конфигурации >> Настройки NOTES.INI для принимающего сервера), но без какого-либо очевидного эффекта для имен, содержащих специальные символы. И администраторы клиентов не видят в этом своей проблемы, потому что мы, похоже, единственные, кто сообщает об этой проблеме.
Затем я написал некоторый агент LotusScript типа "До прихода новой почты", ищущий имена без кавычек и исправляющий их для меня. Похоже, это решило проблему уже более года, и я уже думал о внедрении этого агента во все наши локальные почтовые файлы. Но на прошлой неделе я получил еще несколько писем от нашего клиента, когда меня не было в офисе, и вдруг агент больше не работал, возможно, потому что я копировал в локальную реплику. Не имеет никакого смысла для меня, но это то, что случилось.
Итак, мои вопросы: - это известный сценарий, и есть ли какие-то меры против него, желательно прямо на сервере, а не внутри отдельных почтовых файлов? - есть ли хоть какой-нибудь способ предотвратить пересчет кода почты, чтобы получить результаты, которые записаны не совсем как имена, которые ищутся? Можем ли мы сделать эту услугу менее терпимой к опечаткам, может быть?
РЕДАКТИРОВАТЬ:
Я только что услышал от одного из наших администраторов, что упомянутый параметр Notes.ini работает нормально, если получающие имена не содержат специальных символов. Если они делают, однако, имена закодированы как это:
CC: =?iso-8859-1?Q?Wei=DF=2C_Rupert=2C_Dr=2E?= <Rupert.Weiss@somecompany.de>
Похоже, в этом случае запятые были слишком хорошо спрятаны, чтобы их можно было правильно распознать?
2 ответа
Параметр RFC822StripUnquotedDelimiters=1
безусловно, это решение вашей проблемы.
И: проблема вызвана обменом, потому что он не следует RFC и "забывает" разделители вокруг имен, разделенных запятыми. Конечно, Outlook / Exchange отправляет проприетарное дополнительное поле заголовка с "правильным" адресом, чтобы получатели Outlook / Exchange могли обрабатывать эти искаженные письма, но это не соответствует стандарту и поэтому игнорируется сервером домино.
После установки записи в конфигурационном документе вы должны подождать, пока она не будет заполнена на notes.ini сервера (show config RFC822StripUnquotedDelimitersand
) затем перезапустите задачу маршрутизатора.
ВАЖНО: Этот параметр должен быть установлен на сервере, который выполняет преобразование MIME. Если у вас есть HUB- / SPOKES инфраструктура, то это нужно установить на HUB, это не поможет на SPOKES....
Существует техническая рекомендация IBM (см. Здесь), которая подразумевает только противоположность: RFC822StripUnquotedDelimters работает, когда адрес закодирован в кодировке, но не работает, если он не закодирован, и что вам нужно открыть PMR с IBM, чтобы получить патч, чтобы это исправить. Для меня это звучит так, как если бы у techote была обратная версия, или новое исправление было интегрировано в 9.x, и оно сломало старое исправление! Я думаю, вам нужно позвонить в IBM и открыть с ними PMR, чтобы получить исправление для исправления!