Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-07-29 16:17:20

  Mider - Użytkownik

Mider
Użytkownik
Zarejestrowany: 2010-07-29

EXIM - ciut bardziej zaawansowany

Na wstępie chciałbym się przywitać. Tak więc witam wszystkich i przystępuję do opisu problemu.

Tworząc MTA na bazie EXIMa natknąłem się na problemy, których nie potrafię rozwiązać a precyzyjniej nie potrafię skonfigurować.
Założenia są takie:
- serwer obsługuje wirtualne serwery
- konfiguracja szczególna dla serwerów i użytkowników czytana jest z bazy danych
- różne wirtuale mają różne numery IP
- użytkownicy mogą się logować tylko na IP przyznane ich wirtualce
- użytkownicy mają korzystać z prywatnych ustawień dla antywirusa i antyspamu
- użytkownicy korzystają z alaiasów, vacation itp
- poczta wychodząca powinna wychodzić przez IP przyznane wirtualce

Implementacja:
Co do założeń ogólnych wszystko działa. Problemy są dwa.

Problem 1.
Poczta wychodząca powinna wychodzić przez IP przyznane wirtualce
Chodzi o to, że nie mogę ustalić IP wychodzącego na podstawie adresu nadawcy. W przypadku aliasów kierujących w świat oraz vacation, adres nadawcy jest niezgodny z tym co mam w bazie, bo jest nim ktoś ze świata a nie ktoś z bazy. W przypadku użytkownika, który się zautoryzował, czyli jest w bazie, co prawda mam numer IP, ale gdy mail trafi do kolejki ta informacja znika i mail wychodzi mi z podstawowego interfejsu.

Problem 2.
Działanie ze specyficznymi ustawieniami użytkowników.
Użytkownicy mają prawo do definiowania akcji, która ma być podjęta w przypadku otrzymania maila ze spamem lub wirusem. Możliwych akcji jest kilka - nie sprawdzaj, nie przyjmuj jeśli spam, spam przyjmuj ale oznaczony, spam oznacz i dostarcz na inne konto. W przypadku spamu a precyzyjniej spamassassina dochodzi jeszcze sprawdzanie białych list, które są tworzone per user i ustawień poziomu, powyżej którego mail jest uznawany za spam. Oczywiście wszystko wczytuję sobie z bazy.
W tym przypadku problem jest z tym jak to zrobić optymalnie. Kolejność jest istotna a ja nie potrafię niestety skonfigurować tego tak, żeby było po ludzku, czyli
- wczytać konfigurację użytkownika
- zignorować kontrolę av / spam, jeśli użytkownik sobie nie życzy
- przeprowadzić kontrolę w innym wypadku i zapamiętać wynik
- sprawdzić co ma się stać z mailem i w zależności od potrzeb - deny lub warn a potem jeśli nie ma być odrzucany albo dostarczyć na adres odbiorcy albo na adres przez niego wskazany oczywiście wcześniej oznaczając do np. poprzez modyfikację subject.
Takie rozwiązanie jest chwilowo poza moim zasięgiem :/


Reszta hula jak ta lala. Bardzo jestem z EXIMA zadowolony.
No może z autoryzacji poprzez courierauth średnio, bo robi to "godzinę" ale tak wogóle to bardzo wszystko jest OK.

Ostatnio edytowany przez Mider (2010-07-29 16:19:05)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.008 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00011 SET CHARSET latin2
0.00006 SET NAMES latin2
0.00090 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.217.246.148' WHERE u.id=1
0.00075 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.217.246.148', 1732948006)
0.00065 SELECT * FROM punbb_online WHERE logged<1732947706
0.00073 SELECT topic_id FROM punbb_posts WHERE id=152967
0.00086 SELECT id FROM punbb_posts WHERE topic_id=17310 ORDER BY posted
0.00087 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=17310 AND t.moved_to IS NULL
0.00006 SELECT search_for, replace_with FROM punbb_censoring
0.00073 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=17310 ORDER BY p.id LIMIT 0,25
0.00082 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=17310
Total query time: 0.00654 s