Про то как умельцы продвинут gmail в Яндекс

Tuesday, 21 Jun 2011

Упал тут не понятный спам, причем мы с магом, буквально за пару недель до этого обсуждали еще один идиотский спам, который шел по мейлам, которые пользуем исключительно для общения на вебмастерских форумах.

Суть спама сводилась к тому что некие чесы искали сеошников для того чтобы они считали им комерческие предложения, после чего эти граждане бы накидывали денежку свою и отдавали бы найденным сеошникам на аутсорс. Тема была не понятная, так как кидалово могло бы случиться с двух сторон, тем более что люди могли нанять себе таким образом кодлу школоты, которая бы загнала клиентские сайты в бан.

Ну и собственно тут тоже был не совсем понятный спам- картинка письма собственно приводится чутка ниже.

(more…)

VN:F [1.9.21_1169]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.21_1169]
Rating: 0 (from 0 votes)

Перенаправление почты на внешний адрес средствами dbmail

Wednesday, 15 Jun 2011

Возникла необходимость в связке exim + dbmail перенаправить почту некоторых пользователей на внешние ящики. Самое забавное, что сначала тебя просят сделать веб-морду для почты, а после того как ты проковыряешься пару дней прилаживая хорду или еще кого нить; просят перекидывать почту на gmail или yandex.

Обычно я это делал средствами DBmailAdmin, но на этом серваке мне его ставить было ломы, ради управления 10ю пользователями и поэтому я там ничего кроме белки (ака squrellmail) не поднимал, так что пришлось ковыряться из консоли.

Делается это естественно с помощью утилиты dbmail-users, но без использования самого пользователя, а только на уровне алиасов сервера. Для добавления перенаправления (форварда) адреса, говорим:

# dbmail-users -x alias@local-domain -t forward-mail@external-domain

Для того чтобы удалить это перенаправление почты, задаем:

# dbmail-users -x alias@local-domain -T forward-mail@external-domain

*** Кстати в процессе ковыряния нашел интересный вариант как безусловно переправить всю почту с одного ящика на другой:

# dbmail-export -d -u orphaned-user -m orphaned-mailbox

В данном случае ключик -d еще и потрет всю почту в ящике

VN:F [1.9.21_1169]
Rating: 5.5/10 (2 votes cast)
VN:F [1.9.21_1169]
Rating: 0 (from 0 votes)

Массовая рассылка писем в интернете своими руками

Friday, 06 May 2011

Как я уже писал- на моем последнем месте работы довольно интересный стиль постановки задач, который описывается фразой “лужу, паяю, на php ваяю”. Вот и сейчас мне поставили задачу рассчитаться с одним из клиентов, за счет выполнения рассылки по его собственной базе клиентов, состоящей из 200к+ адресов.

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

Поискав софтину для этого дела, я перепробовал несколько программ для массовых рассылок писем, как российских, так и зарубежных компаний, но остановил свой выбор между Atompark ePochta и AMS Enterprise, о которых расскажу несколько позже, но обе программы заслуживают своего внимания, тем более что ePochta, практически в три раза дешевле AMS, хотя в качестве программы для организации почтовых рассылок в интернете AMS выглядел более мощным продуктом. На самом деле, программ для массовой рассылки писем не так и много, ибо большинство рассылок что я видел в инете крутятся около 10-20к адресов, так что я со своими 200к был похож на героя фильма “Как потратить миллион долларов”. Но так или иначе погоняв какое то время обе программы для массовой рассылки писем, я остановил свой выбор на AMS Enterprise. Следующим этапом я более-менее ознакомился с её интерфейсом и основными возможностями, о которых расскажу позже, а пока могу заметить что мне крайне понравилась возможность подтягивания различных форматов в качестве шаблонов письма, а также крайне удобный редактор писем и возможность организации нескольких рассылок одновременно, к тому же, как оказалось имеется отличный модуль сбора статистики по просмотрам писем и открытию ссылок, правда требующий отдельного хостинга.

(more…)

VN:F [1.9.21_1169]
Rating: 8.1/10 (19 votes cast)
VN:F [1.9.21_1169]
Rating: +4 (from 4 votes)

Управление автоповторами в Exim

Friday, 24 Sep 2010

На одном из почтарей под управлением exim возникала постоянно ситуация, когда при отправке письма на широковещательный внутренний адрес компании alloffice@odminblog.ru, в случае переполнения ящиков одного или нескольких пользователей, письмо ничинало отсылаться каждые 15 минут, после чего количество забитых ящиков еще больше увеличивалось и почтарь впадал в ступор. Возникало не из-за того что я первоначально криво все настроил, а из-за того что пользователи имея ящики по 200 метров не запаривались на их очистку, в добавок к чему сыпали мейлами по 15-20 мегабайт.

В этой связи возникла задача переписать стандартное правило автоповторов для exim. Для этого открываем конфигурационный файл и идем в самый его конец, в секцию RETRY. Там мы видим следующие строки:

########################################
#                      RETRY CONFIGURATION                           #
########################################
begin retry
# Domain               Error       Retries
*                 refused_A   F,2h,20m;
*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h

Это стандартное правило автоповторов для exim, и оно всегда имеет две звездочки, для того чтобы описать общее правило для всех доменов и ошибок, не описанных отдельным полем. Об этом описании мы поговорим позже, а в данной записи получается что в случае любой ошибки для любого домена повтор отправки будет осуществляться каждые 15 минут в течении двух часов, после чего с интервалами от одного часа до 16 часов, с множителем в 1,5, после чего в течении 4 дней попытка будет осуществляться каждые 6 часов. После истечения времени автоповтора exim отбивает адрес доставки и скитывает отправителю отлуп.

Само правило автоповтора создается по следующему шаблону:
<Domain><Error><Retries>
Первым пункт может включать как имя домена, так и, для сужения задачи, адрес получателя.
Второй пункт описывает специфическую ошибку, которые бывают следующих типов:
auth_failed – при неудачной аутентификации в случае отправки на хост из списка  hosts_require_auth
data_4xx   – при ошибке которая получается для команды smtp диалога DATA, или сразу же после команды
mail_4xx   – при ошибке которая получается для команды smtp диалога MAIL.
rcpt_4xx    – которая получается для команды smtp диалога RCPT
Также в этих трех ошибках, ошибка может задаваться полным номером, для сужения правила применения автоповтора.
lost_connection – при неожиданном закрытии SMTP-сессии со стороны сервера
refused_MX – при отказе в соединении к хосту определенному как почтовый сервер по данным из MX записи
refused_A – при отказе в соединении к хосту полученному не из MX записи
refused – при любом отказе в соединении
timeout_connect_MX – при таймауте попытки соединения с хостом определенномв MX-записи
timeout_connect_A – при таймауте попытки соединения с хостом полученным не из MX-записи
timeout_connect – при таймауте любой попытки соединения
timeout_MX – при таймауте во время соединения или в процессе SMTP-сессии с хостом, полученным из MX-записи
timeout_A – при таймауте во время соединения или в процессе SMTP-сессии с хостом, полученным не из MX-записи
timeout – при таймауте во время соединения или в процессе SMTP-сессии
tls_required – в сессии соединения сервер должен был использовать TLS (сервер определен в списке  hosts_require_tls), но либо TLS не был предложен, либо сервер прислал ответ 4xx на команду STARTTLS
quota  – при локальной доставке транспортом “ appendfile ” была превышена квота почтового ящика пользователя
quota_<time> – при локальной доставке транспортом “ appendfile ” была превышена квота почтового ящика, и к почтовому ящику не обращались время равное <time>
Также после этого поля возможно определить отправителя, тем самыв сузив правило автоповтора, например для приоритезации руководства компании:
senders=<address list>
Тогда правило автоповтора будет выглядеть
kremlin.ru  rcpt_452  senders=”mainperson@odminblog.ru”  G,8h,10m,

Третий пункт отпределяет само правило автоповтора:
<letter>,<cutoff time>,<arguments>
Буквой задает алгоритм вычисления правила автоповтора:
F – повторять автоповтор с определенным интервалом. Первое число определяет в течении какого периода осуществлять автоповтор, второе задает интервал.
G -  повторять автоповтор в геометрически увеличивающихся интервалах. Первое число определяет максимальное значение для интервала, второе начальное значение интервала, третье число множитель, используемый для увеличения интервала при каждом повторении.Если первое число не задано, то интервал увеличивается до значения параметра retry_interval_max, который не может быть больше 24h.
H – повторять отправку повтора со случайными интервалами. Используемые аргументы – такие же как для  G. Для каждого повтора, предыдущий интервал умножается на фактор, для получения максимума следующего интервала. Минимальный интервал – первый аргумент параметра, и актуальный интервал выбирается случайным образом из диапазона между ними.
Если в поле правила автоповтора ничего не задано, то сразу после неудачной попытки отправки, генерируется рикошет и уходит в сторону отправителя.

Исходя из всего вышеописанного создаем новое правило автоповторов:
####################################################
#                      RETRY CONFIGURATION                           #
####################################################
begin retry
# Domain               Error       Retries
alloffice@odminblog.ru    *
odminblog.ru    quota
*                 refused_A   F,2h,20m;
*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h

По этому правилу на все ошибки препятствующие доставки на адрес alloffice@odminblog.ru будет генерироваться рикошет, а при переполнении ящика кого либо из пользователей домена odminblog.ru также будет генерироваться рикошет

VN:F [1.9.21_1169]
Rating: 7.0/10 (3 votes cast)
VN:F [1.9.21_1169]
Rating: 0 (from 2 votes)

Организация глобального внутреннего алиаса средствами exim

Tuesday, 27 Apr 2010

Очень часто возникает необходимость создать некоторое количество внутренних почтовых адресов, например по отделам и административным группам (sales@ , acct@) или безусловную рассылку на все почтовые адреса компании, что нибудь вроде all@ или office@. Этот алиас мы присваиваем всем имеющимся почтовым пользователям, но через пару недель использования, а то и сразу на него начинает сыпаться дикое количество спама, ибо за день на стандартные потовые адреса может приходить до нескольких сотен сообщений, которые в ситуации с глобальным алиасом будут падать на все конторские ящики, выводя пользователей из себя и портя нервы админу. Естественно, что лучшим выходом в данной ситуации будет закрыть это адрес для внешней пересылки, оставив его только для внутреннего общения компании. Но как это сделать?

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

Тут нам в очередной раз приходит на помощь такой гибкий инструмент управления почтовым сервером Exim, как его конфигурационный файл exim.conf

В разделе MAIN CONFIGURATION SETTINGS у  нас уже должны быть заданы IP адреса для которых разрешена отправка через наш почтовый север. Обычно в этот список включается только localhost для того чтобы сервер мог пересылать сам через себя, но можно также включить и пользователей локальной сети, например:

hostlist relay_from_hosts = 127.0.0.1 : 192.168.16.0/24

В разделе  ACL CONFIGURATION создаем правило для нашего глобального алиаса, по которому использование данного адреса будет разрешено только для хостов указанных в списке relay_from_hosts или прошедших аутентификацию.

deny    message     = Go Away! This address not permitted for external use!
hosts              = !+relay_from_hosts
local_parts       = GLOBAL_ALIAS
!authenticated   = *

Данное правило можно расширить списком определенных доменов, но это даст возможность просачиваться спаму, использующему обратные адреса принадлежащие к нашим локальным доменам. Поэтому я это правило исключил после некоторого периода тестового использования.

domains        = +local_domains

После этого для каждого создаваемого пользователя мы добавляем глобальный алиас, или же можно созрать список рассылки без добавления отдельных алиасов, для этого в раздел ROUTERS CONFIGURATION добавляем следующее выражение:

virtual_allusers:
driver = redirect
domains = +local_domains
allow_fail
allow_defer
condition = ${if eq {$local_part}{all
|еще какие-нить алиасы}{yes}{no}}
data = ${lookup mysql{SELECT CONCAT(login,»@»,domain) FROM users}}

Также можно объявить разрешенных отправителей для этого адреса, если количество внутриофисных спамеров ограничено:
senders = localspammer@odminblog.ru

VN:F [1.9.21_1169]
Rating: 7.0/10 (3 votes cast)
VN:F [1.9.21_1169]
Rating: 0 (from 0 votes)

Всякие полезности для exim

Thursday, 11 Feb 2010

Ниже приводится вольный перевод статьи, посвященной хитростям работы с SMTP сервером Exim v. 4.  Эта статья является более подробным изложением материала который я приводил  в моем предыдущем посте о работе с очередью Exim.  Какие то вводные могут пересекаться, но по сути это более подробная и развернутая инструкция.
Естественно, что использование этих команд не исключает необходимости познаний о работе сервисов SMTP, MTA и знакомства с шеллом UNIX.
(more…)

VN:F [1.9.21_1169]
Rating: 7.6/10 (12 votes cast)
VN:F [1.9.21_1169]
Rating: +6 (from 6 votes)

Борьба со спамом в MTA EXIM на основе ACL

Saturday, 29 Aug 2009

Как говорят знающие люди, хуже спама может быть только борьба со спамом. Но тем не менее с тем ужасным потоком, что обрушивается на незащищенного пользователя, необходимо что то делать, т.к. иначе конечному пользователю приходится тратить часы на разборы тех словесных завалов, что валятся ему в ящик.
Можно сколь угодно долго рассуждать относительно этичности использования RBL листов, но внедрение их автоматически снижает нагрузку спама в разы, тем более что для рассылок последнее время очень часто используются бот-сети, полностью иммулирующие нормальное соединение.
(more…)

VN:F [1.9.21_1169]
Rating: 5.0/10 (2 votes cast)
VN:F [1.9.21_1169]
Rating: +4 (from 4 votes)