Я столкнулся с подобной проблемой на сервере, на котором запущен sendmail.
Я создавал и тестировал html-письмо, которое в один прекрасный день будет отправлено по почте (конечно же, с согласия). У меня был шаблон электронной почты, который было легко прочитать любому html-программисту, но, как таковой, он занимал много места, чтобы правильно выстроить все строки. Я подумал, что если это будет массовое электронное письмо, то после рендеринга шаблона, я думаю, я минимизирую пробелы в файле, чтобы сэкономить место! Поэтому я создал блестящее регулярное выражение, чтобы избавить от ненужных отправлений пробелов из обработанного электронного письма.
При отправке письма себе, я открыл письмо и был озадачен, когда увидел, что некоторые из CSS и HTML не отображаются правильно, когда мои предыдущие письма до моего регулярного выражения были. Просматривая исходное сообщение, я заметил, что время от времени восклицательный знак (!) Появлялся, казалось бы, случайным образом по всему сообщению, тем самым нарушая любые CSS и HTML, которые попадали на его случайный путь.
Оказывается, что sendmail не нравится, если строка в вашей электронной почте становится слишком длинной без разрыва строки. Когда строка становится слишком длинной, sendmail вставит восклицательный знак, за которым следует разрыв строки прямо там и сейчас, просто чтобы сбить вас с толку.
Почему он не просто выбрал пробел между словами для перевода строки? Зачем вставлять восклицательный знак? Вопросы боюсь, без ответов.
Мое решение?
sudo apt-get remove sendmail
sudo apt-get install exim4
У меня были другие проблемы с sendmail, такие как отправка электронной почты в течение полных 60 секунд, и exim4 просто работал, и мне больше никогда не приходилось об этом думать.
Если ваш почтовый сервер использует sendmail, это может быть проблемой, если нет, спасибо, что позволили мне поделиться с вами моей историей. Мне нужно было вентилировать.