mini_sendmail и ад Pure C
Давненько я не брал в руки шашек!На одном из наших серверов с довиртуализационных времён веб-сервер до сих пор работает в chroot, а почтовый – «снаружи», и для отправки почты используется mini_sendmail. Это такая хорошая маленькая заглушка вместо sendmail, которая читает сообщения из stdin и скармливает их почтовому серверу уже через localhost:smtp.
Много лет всё было хорошо, пока не понадобилось из скрипта отправить почту не просто на <user@example.org>, а на «Василий Пупкин <user@example.com>». Из эстетических соображений. Но почтовый сервер при этом отвечал 501 5.1.3 Bad recipient address syntax. Оказалось, что mini_sendmail так и пытался отправить почту на указанные адреса вместе с именем, говоря серверу:
RCPT TO:test <test@test.local>
С предсказуемым результатом.
Помянув шёпотом нескольких родственников и всякие части тела, я взялся за вим, нашёл баг и попытался извлечь из памяти знания о работе со строками на чистом C. Было больно, но патч всё же родился и работает вполне успешно.
Категория: работа Слова:
C,
mimi_sendmail,
programming,
patch

![[rss]](images/rss.gif)