Должен ли cron отправлять электронные письма с символами Unicode? - PullRequest
0 голосов
/ 31 января 2020

Это мой пользователь crontab:

* * * * * : Subject 1;  echo Text 1; touch ~/1 2>&1
* * * * * : Subject 2; echo Text 2;  touch ~/2 2>&1
* * * * * : Subject 3;  echo Text 3;  touch ~/3 2>&1

Письма успешно получены для задачи 3; кроме того, файлы 1, 2 и 3 редактируются touch каждую минуту.

Но я не получаю сообщений по электронной почте для задач 1 и 2. Известно ли это / ожидается? Как мне это исправить?

Это env как видит мой пользователь crontab:

MAILTO=bers@company
LANG=en_US.UTF-8
MAILFROM=bers@company
XDG_SESSION_ID=234567
USER=bers
PWD=/home/bers
HOME=/home/bers
SHELL=/bin/sh
SHLVL=1
LOGNAME=bers
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/123456/bus
XDG_RUNTIME_DIR=/run/user/123456
PATH=/usr/bin:/bin
_=/usr/bin/env

Я должен также сказать, что я могу использовать программу mail для отправки писем с символами Unicode как в тексте, так и в теле (он устанавливает тип содержимого utf8, если это произойдет, как и ожидалось).

Поэтому я попытался изменить CONTENT_TYPE в моем crontab без успеха:

CONTENT_TYPE="text/html; charset=utf-8"
CONTENT_TRANSFER_ENCODING=utf8

Отправляет HTML электронных писем (multipart/alternative) с каждой частью, как plain и html, закодированных как "utf8". Но для задач 1 и 2 электронной почты нет.

Я также дважды проверил, установлен ли языковой стандарт (как видно из задания cron):

ws01:~> locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Я использую cron ie -1.5.1-lp151.4.3.1.sr c в OpenSUSE Leap 15.1, кстати.

1 Ответ

0 голосов
/ 31 января 2020

На данный момент похоже, что это ошибка SMTP-сервера, которая не поддерживает SMTPUTF8 (строка темы является частью заголовка, поэтому Post вызывает PostFix для запроса: http://www.postfix.org/SMTPUTF8_README.html )

Интересно, что я получаю сообщения об ошибках через mail о недоставленной электронной почте, когда я добавляю символы UTF-8 в список получателей, но не когда я включаю их в тему, хотя оба являются частью заголовка.

Мой обходной путь, чтобы заменить ? на =?UTF-8?B?8J+RjQ==?=

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...