FeedBack-форма против злобного Google Apps

Некоторое время назад хорошие люди меня попросили захостить один чужой сайт.

Как водится сайт был ”стандартный”:

  • Куча кривых скриптов на PHP4 в одной куче
  • Требует правки php.ini, понижая тем самым безопасность php до предела
  • Работает только под Apache с mod_php
  • Дамп mysql-базы с неимоверным количеством спамовых сообщений (несколько тысяч) в форуме (phpBB2 кажется), который вообще на сайте не использовался

Естественно ставить всё это на машину со своим сайтом мне не очень хотелось, поэтому я быстренько создал отдельный OpenVZ-контейнер и запихал всё туда.

Почту данных личностей ставить на свой почтовик мне тоже не особо улыбалось, так что я захостил их на бесплатном Google Apps. Тем более, что они обожают Google Mail.

Дабы не настраивать там особо ничего, я поставил msmtp с таким конфигом:

# cat /etc/msmtprc
account default
host smtp.gmail.com
port 587
protocol smtp
auth on
user tech@example.com
password PaSsWoRd
tls on
tls_starttls on
tls_certcheck off
syslog LOG_MAIL

Но тут возникла проблема, с тем что Google переписывает заголовок From: из письма на реальное имя ящика. Что конечно же резко помешало работе Feedback-формы на сайте. Вообще я за эту работу не получил не только денег, по сути даже и ”спасибо”.

И вдруг с меня начинают просто таки требовать “починить”, чтобы всё работало как раньше. Я сказал, что Google вполне разумно защищается от спама и всё работает правильно. На что мне было отвечено, что я нифига не понимаю в том, как работает почта, и что люди, которые пишут этот, как было сказано мне, “движок” лучше знают что правильно, а я им сделал кривую почту.

Я немного подумав нашел простейшее решение, которое полностью устроило меня, ибо клиент отстал, а я не нарушил ни стандартов, ни безопасности.

Письма продолжают приходить с адреса tech@example.com, но вот адрес отправителя в них теперь есть. Я просто добавил стандартный заголовок, который предназначен именно для этого: Reply-To.

Теперь письма выглядят так:

From: tech@example.com
To: info@example.com
Reply-To: client@somedomain.tld
Date: Fri, 21 Nov 1997 09:55:06 -0600
Subject: [EXAMPLE.COM FEEDBACK] Subject

Message Body.

Внести эти изменения в “upstream” я сразу не смог, ибо там просили обосновать это решение, но сделать это используя разумные аргументы мне не удалось.

На текущий момент я сделал грязный хак, и закодил это всё прямо в код того ”движка”.

Вообще, если подобное делать в общем случае, то проще всего написать свой простейший аналог msmtp на Python. Благо, используя модули email, smtplib и smtpd, пишется подобная вещь в пару сотен строк даже с очередью, приоритетами и повторами.

Добавить пост в: Delicious Reddit Slashdot Digg Technorati Google
(уже: 1) Комментировать статью

Комментарии

К этой публикации комментариев нет

Обязательное поле. Не больше 30 символов.

Обязательное поле