Szukaj


drukuj pdf Polish
Problemy Email Dedykowane

Na serwerach dedykowanych zainstalowaliśmy serwer poczty elektronicznej qmail
http://www.qmail.org

Qmail jest wyposażony w następujące łatki :
  • łatka tls, która pozwala wysyłać wiadomości email z szyfrowaniem ssl
  • łatka spamcotnrol

Zanim zaczniesz
Serwer poczty elektronicznej to program, który zajmuje się przyjmowaniem wiadomości email poprzez port 25 przy użyciu protokołu SMTP. Aby dowiedzieć się, jak działa protokół SMTP, odwiedź stronę RFC http://www.ietf.org/rfc/rfc0821.txt

Oto przykład połączenia w SMTP do portu 25 :
/$ telnet mx3.ovh.net 25 Znalezienie mx3.ovh.net
Trying 213.186.33.73...
Connected to mx3.ovh.net.
Escape character is '^]'.
220 Welcome ! You are on server 8 called mx3.ovh.net, spam protected: www.spam-rbl.com ESMTP
HELO ping.ovh.net Przedstawia się
250 Welcome ! You are on server 8 called mx3.ovh.net, spam protected: www.spam-rbl.com
MAIL FROM:<oles@ovh.net> On dit qui envoit l'email
MAIL FROM:<oles@ovh.net> Powiadamia o tym, kto wysyła email
250 ok
RCPT TO:<oles@ovh.net> Wskazuje, do kogo wysyłany jest email
250 ok akceptacja
DATA
354 go ahead
test zawartość wiadomości email ; zazwyczaj należy uzupełnić pola FROM, TO, SUBJECT
.
250 ok 1065864990 qp 27338
QUIT Wyjście
221 Welcome ! You are on server 8 called mx3.ovh.net, spam protected: www.spam-rbl.com
Connection closed by foreign host.


2 uwagi:

* Wiadomość email został przyjęta przez serwer mx3.ovh.net. Dlaczego? Istnieją 2 rozwiązania : 1. Ponieważ ip, z którego dokonano połączenia (ping.ovh.net 213.186.33.13) może wykonać relay wiadomości email poprzez mx3.ovh.net ; lub 2. Ponieważ mx3.ovh.net jest serwerem MX ovh.net
* Inforamcje w DATA muszą normalnie same być wiadomością email, tzn. mieć postać wiadomości email :

From: oles@ovh.net
To: oles@ovh.net
Subject: test

test

Relay

Najprostszą funkcją serwera poczty elektronicznej jest relay (przesłanie), który polega na :

  • przyjmowaniu wiadomości email i wysyłaniu 250 ok po RCPT TO,
  • umieszczaniu wiadomości email w spoolu lub w kolejce,
  • przesyłaniu wiadomości email w kierunku serwera MX adresata.

To serwer SMTP zajmie się dystrybucją wiadomości email w internecie.

Dostawcy internetu proponują takie rodzaje serwerów. Każdy serwer SMTP potrafi rozesłać wiadomości email.

Pierwszy etap został opisany w części Zanim zaczniesz. Polega on na akceptowaniu wiadomości.

Zajmuje sie tym proces qmail-smtp. Jego zadaniem jest komunikacja w SMTP oraz zapisywanie wiadomości email w formie pliku na twardym dysku.

Drugi etap polega na przechowywaniu wiadomości elektronicznych na dyskach w oczekiwaniu na etap trzeci.
Aby sprawdzić stan spoola :

# /var/qmail/bin/qmail-qstat
queue
messages in queue: 360
messages in queue but not yet preprocessed: 0


Oznacza to, że serwer poczty elektronicznej wysłał już raz 360 wiadomości email, ale najwidoczniej albo adresat nie istnieje, albo serwer MX adresata nie działa poprawnie.

Należy zaznaczyć, że często pojawiają się problemy czasu odpowiedzi serwera relay, gdy w spoolu znajduje się dużo wiadomości. Qmail staje się naprawdę długi z 25000 wiadomości email w spoolu. W takim przypadku, przygotowanie wiadomości email staje się coraz dłuższe, natomiast liczba "messages in queue but not yet preprocessed" wzrasta.

Aby sprawdzić wiadomości email :

# /var/qmail/bin/qmail-qread | grep remote | grep -v done
remote dr_adams@sm66.com
remote 66-2434019-directway.com?amysummers@trailerr.trailblazernews.com
remote 2245031-5-reply@msgbnc.tgtrewards.net
remote response@sleekzine.com
remote larhondabeirne@hushmail.com
[...]


Dlaczego te wiadomości email się tam znajdują ? Mogło się tak zdarzyć ponieważ :

  • serwer relay wysłał, ale adresat nie istnieje RCPT TO
  • serwer relay wysłał, ale serwer MX adresata nie istnieje
  • serwer relay wysłał, ale serwer MX adresata nie działa
  • serwer MX przyjął wiadomość email, ale lokalne konto pop3 nie istnieje i próbuje sie odesłać tą wiadomość do nadawcy wraz z wiadomością o wystąpieniu błędu, ale:

  • adresat nie istnieje (MAIL FROM wiadomości pierwotnej)
  • serwer MX adresata nie istnieje

To qmail-send zajmuje się zarządzaniem kolejką dla całego qmail. Jego rola polega na przeglądaniu plików, które qmail-smtp wypuścił oraz na rozsyłaniu ich. Może on wybrać między wykorzystaniem dystrybucji lokalnej (w przypadku, gdy adresat znajduje się na samym serwerze, tzn., gdy serwerem jest serwer MX poczty elektronicznej oraz istnieje konto pop3/imap na przykład na serwerze) lub wykorzystaniem dystrybucji remote (na dystans, tzn., przesłaniem poczty elektronicznej do adresata wiadomości).

Trzeci etap polega na wysyłaniu wiadomości email do adresata. Wiadomość jest umieszczana w spoolu w celu określenia, kto jest nadawcą. Qmail poszukuje serwerów MX domeny, a następnie łączy się z portem 25 w celu wysłania wiadomości email. Operacja tajest identyczna jak na początku.

W ramach jednej domeny można mieć; wiele MX-ów o takich samych albo różnych parametrach.
W takim przypadku serwer SMTP próbuje najpierw połączyć się z serwerem MX o najsłabszych parametrach. Jeżeli 2 MX-y mają identyczne parametry, najpierw zostanie wykorzytany ten, który jako pierwszy pojawi się w połączeniu.


Każda operacja relay jest zapisywana w nagłówkach wiadomości email (header).
W ten sposób widać, skąd i za pośrednictwem jakiego serwera poczty elektronicznej została wysłana wiadomość :

Delivered-To: ovh.net-60gp@ovh.net
Received: (qmail 15496 invoked by uid 505); 11 Oct 2003 09:22:30 -0000
Received: from unknown (HELO 200-102-028-198.fnsce7005.dsl.brasiltelecom.net.br) (200.102.28.198)
by mx4.ovh.net with SMTP; 11 Oct 2003 09:22:28 -0000

Odczytywać należy od dołu do góry. Widać, że wiadomość pochodzi z 200.102.28.198, który połączył się z
mx4.ovh.net oraz że wiadomość został przesłana na konto 60gp@ovh.net.

Spójrz na nagłówki wygenerowane w rozdziale spam.

Aby sprawdzić funkcjonowanie Twojego serwera email, możesz sprawdzić logi. Automatycznie wyświetlają się logi tylko trzeciego etapu :

# tail -f /var/log/qmail/current
@400000003f87e06f3172d234 end msg 195408
@400000003f87e07005d90c24 delivery 3534821: deferral: Sorry,3_I_wasn't_able_to_establish_an_SMTP_connection._(#4.4.1)/
@400000003f87e07005d91fac status: local 0/15 remote 1/120
@400000003f87e0740c22b274 new msg 195408
@400000003f87e0740c22be2c info msg 195408: bytes 1580 from <loubfeenah@wanadoo.fr> qp 30987 uid 503
@400000003f87e0740c7fb6f4 starting delivery 3534823: msg 195408 to local hfifi-geefnie.com-studio@hiffi-gefenie.com
@400000003f87e0740c7fc694 status: local 1/15 remote 1/120
@400000003f87e0741c7b34d4 delivery 3534823: success: did_0+0+1/
@400000003f87e0741c7b4474 status: local 0/15 remote 1/120
@400000003f87e0741c7b485c end msg 195408


status: local 0/15 remote 1/120 wymaga, aby dla potrzeb dystrybucji z poziomu spoolu w kierunku lokalnego (kont pop3)
qmail wykorzystywał 0 połączeń na 15, natomiast w kierunku remote (trzeci etap) 1 na 120.

uwaga: plik jest aktywny, tzn., że jeżeli osiągnie określony rozmiar, trzeba będzie zmienić ten rozmiar, aby uzyskać logi.
Możesz również przy pomocy komendy tail-F ponownie otworzyć plik podczas, gdy jest on aktywny.

Kto może zarządzać funkcją relay ?
Aby zarządzać funkcją relay, należy zarządzać adresami IP użytkowników, którzy mogą korzystać z tej funkcji. Jeżeli pozwolisz na to wszystkim ip, w pewnym momencie serwer będzie wykorzystywany jako serwer relay dla spammerów.

Aby zarządzać tą funkcją, możesz wykorzystać plik /etc/tcp.smtp

# cat /etc/tcp.smtp
127.0.0.:allow,RELAYCLIENT=" "
:allow


Oznacza to, że:
wszystkie wiadomości pochodzące z ip 127.0.0.X są przesyłane.
wszytkie wiadomości pochodzące z innych ip są przyjmowane tylko wtedy, gdy adresat jest skonfigurowany na serwerze (patrz serwer MX).

Możesz zatem dołączyć jeden wybrany ip (np. jeżeli masz stały IP Twojej
firmy lub stały IP w adsl) i skompilować tcp.smtp:

# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp



Zmiany dokonane w ten sposób są wprowadzone do pliku /etc/tcp.smtp.cdb, który jest wykorzystywany przez serwer smtp. Nie musisz ponownie uruchamiać serwera smtp.
Plik ten jest odczytywany przy okazji każdego połączenia smtp.

W przypadku dostawców dostępu klasy ip są umieszczane na stałe na serwerach smtp, co pozwala klientom dostawców dosŧępu automatycznie korzystać z serwera smtp relaya bez żadnej innej konfiguracji.

Opcja open-smtp lub pop-smtp polega na wykorzystywaniu serwera pop3/impa w celu jego zidentyfikowania
na serwerzez pop3. Fakt korzystania z loginu i hasła pozwala na uzyskanie pewności, że chodzi o
osobę zaufaną i w rezultacie pozwolić jej na relay. Podczas operacji pop3/imap serwer pop3 zapisuje ip połączenia, uaktualnia go w /etc/tcp.smtp i komiluje /etc/tcp.smtp.cdb

# cd /etc/vpopmail/
# ls -l
total 696
-rw-r-r- 1 vpopmail vchkpw 25 fev 24 2003 inc_deps
-rw-r-r- 1 vpopmail vchkpw 32 fev 24 2003 lib_deps
-rw-r-r- 1 root root 700229 oct 11 13:22 open-smtp
-rw-r-r- 1 root root 0 oct 11 13:22 open-smtp.lock




Wszystkie tymczasowe ip są umieszczone w open-smtp :

# head -n 5 open-smtp
213.41.188.249:allow,RELAYCLIENT=" ",RBLSMTPD=" " 1029581749
213.41.184.98:allow,RELAYCLIENT=" ",RBLSMTPD=" " 1029782162
213.41.184.135:allow,RELAYCLIENT=" ",RBLSMTPD=" " 1029880909
213.41.186.107:allow,RELAYCLIENT=" ",RBLSMTPD=" " 1029960881
213.41.186.122:allow,RELAYCLIENT=" ",RBLSMTPD=" " 1030146813



Ostania liczba oznacza czas wyrażony w sekundach od 1970 i pozwala na uzyskanie informacji
o tym, kiedy ip użył pop3/imap po raz ostatni. Pozwala to innemu skryptowi /home/vpopmail/bin/clearopensmtp
na przglądnięcie wszytkich ip starszych niż 3 godziny i ich usunięciu z /etc/tcp.smtp.


# cat /etc/crontab
[...]
40 * * * * root /home/vpopmail/bin/clearopensmtp 2>&1 >/dev/null


Uwaga: należy uważnie wykorzystywać wskazanie użytkownika i wstawić :

40 * * * * root /home/vpopmail/bin/clearopensmtp 2>&1 >/dev/null


a nie

40 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 >/dev/null

W tym przypadku widać, że na tym serwerze plik open-smtp jest wyjątkowo duży.

# wc -l open-smtp
11859 open-smtp


11859 ip to dużo. Problem w tym, że użytkownik nie został wskazany w crontabie.
Poprawiamy błąd w contrabie i wykonujemy clearopensmtp.

# ls -l open-smtp
-rw-r--r-- 1 root root 700229 oct 11 13:29 open-smtp
# /home/vpopmail/bin/clearopensmtp
# ls -l open-smtp
-rw-r--r-- 1 vpopmail vchkpw 529 oct 11 13:29 open-smtp
# wc -l open-smtp
9 open-smtp
# cp /etc/crontab /etc/crontab.OLD
# pico /etc/crontab
# /etc/rc.d/init.d/crond restart
Arret de crond : [ OK ]
Demarrage de crond : [ OK ]
# diff -u /etc/crontab.OLD /etc/crontab
- /etc/crontab.OLD Sat Oct 11 13:31:15 2003
+ /etc/crontab Sat Oct 11 13:31:24 2003
42 4 1 * * root run-parts /etc/cron.monthly
# vpopmail
-40 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 >/dev/null
+40 * * * * root /home/vpopmail/bin/clearopensmtp 2>&1 >/dev/null

Jest lepiej. Prawa dostępu open-smtp zostały zmienione. To nic poważnego.

Jeżeli posiadasz serwer pop3/imap bardzo obciążony z więcej niż 3000-4000 połączeń na godzinę, radzimy skorzystać z łatki osd (Open-Smtp-Dir), którą możesz znaleźć na ftp://ftp.ovh.net/made-in-ovh/vpopmail
Ta łatka została wykonana przez ovh i polega na wyłączeniu pliku open-smtp z użytku przy pomocy sytemu lock
(blokada ip). Jeżeli więle osób łączy się z serwerem pop3.imap, każda z nich musi czekać na swoją kolej, aby otrzymać dostęp do pliku, aby zapisać ip, który spowalnia pracę serwera. Myśleliśmy o wykorzystaniu w tym celu katalogu zapisującego pliki o nazwie ip i rozmiarze 0.
Przy każdym nowym połączeniu aktualizacji ulega data pliku, a tmpwatch wymazuje pliki starsze niż 3 godziny. Inny skrypt co sekundę aktualizuje /etc/tcp.smtp.

Aby uniknąć korzystania z pop3 zanim jesteś w stanie wysyłać wiadomości email, możesz wykorzystać łatkę smtph-auth. Ta łatka pozwala na wysyłanie za pośrednictwem połączenia smtp loginu i hasła konta pop3, a więc pozwala wysyłać wiadomości :

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^ ]'.
220 Welcome ! You are on server 1 called mx1.ovh.net, spam protected: www.spam-rbl.com ESMTP
EHLO ping.ovh.net
250-Welcome ! You are on server 1 called mx1.ovh.net, spam protected: www.spam-rbl.com
250-AUTH LOGIN CRAM-MD5 PLAIN
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING
250-STARTTLS
250-8BITMIME
250 SIZE 10000000
AUTH LOGIN
334 VXNlcm5hbWU6
cG9zdG1gregreRlciVtbC5vdmgubmV0
334 UGFzc3dvcmQ6
errrob3Zo
235 ok, go ahead (#2.0.0)
MAIL FROM:<oles@ovh.net>
250 ok
RCPT TO:<oles@ovh.net>
250 ok
DATA
354 go ahead
truc
.
250 ok 1065758232 qp 5296
QUIT
221 Welcome ! You are on server 1 called mx1.ovh.net, spam protected: www.spam-rbl.com
Connection closed by foreign host.


Widać, że zamiast HELO, wysyłane jest EHLO, co pozwala na wykorzystanie ulepszonych komend ESMTP opisanych w http://www.ietf.org/rfc/rfc2821.txt. Serwer odpowiada na EHLO przy wykorzystaniu wszystkich opcji, które przyjmuje, tzn. :

250-AUTH LOGIN CRAM-MD5 PLAIN chodzi o smtp-auth
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING wskaż rodzaj dialogu
250-STARTTLS ssl albo tls albo połączenie szyfrowane
250-8BITMIME przyjęcie wiadomości w 8 bitach, a nie 7 jak smtp
250 SIZE 10000000 maksymalny rozmiar wiadomości email to 10Mo


Login oraz hasło są wysyłane w base64. Nie ma mozliwości przeczytania loginu i hasła jako łańcucha znaków, ponieważ w tym przypadku ich zawartość będzie fałszywa.

Instalacja tej łatki jest skomplikowana i wymaga wykonania kilku sztuczek, o których nie sposób tutaj napisać. Prosimy nie kontaktować się z pomocą techniczną w celu ich poznania. Lepiej przedyskutować ten problem na liście mailingowej.

Możesz również wprowadzić ip serwerów adresatów na twardy dysk w konfiguracji qmail. Jest to bardzo użyteczne w przypadku serwera MX, który nie jest szeroko dostepny (np. caramail.com). Można kazać serwerowi skorzystać ze specjalnego serwera smtp, którego rola polega na przesyłaniu wiadomości elektronicznej jedynie do caramail.com.

# cat /var/qmail/control/smtproutes
caramail.com:213.186.33.9


Wszystkie wiadomości email do caramail będą więc przekierowywane na 213.186.33.9, który zajmie się ich rozesłaniem w kierunku caramail.com. Dzięki temu unika się sytuacji, w której spool jest zapchany wiadomościami i odciąża się serwery. 213.186.33.9 powinien oczywiście przyjmować wiadomości z serwera poczty elektronicznej, z którego przesyła się wiadomości, ale ufamy, że administrator właściwie skonfigurował serwery. Nie ma potrzeby ponownie uruchamiać serwera po dokonaniu modyfikacji.

To proces qmail-remote zajmuje się łączeniem serwerów poprzez port 25 i przesyłaniem wiadomości email.

Serwer MX

Wiadomości email wcześniej czy później muszą znaleźć się na serwerze MX adresata. Jest to serwer, na którym mają być one przechowywane w oczekiwaniu na przyjęcie na serwer pop3 lub imap.
W takim przypadku, serwer poczty elektronicznej przyjmuje wiadomość email i wykonuje dokładnie tą samą operację co w przypadku relay'a. Odmienny jest tylko trzeci etap.

W trzecim etapie proces qmail-sent ustalił, że nadawca istnieje na serwerze.
Przypomnijmy, że to proces qmail-sent jest odpowiedzialny w drugim etapie za zarządzanie spoolem. Zaczyna działać w momencie uruchomienia list wszytkich domen znajdujących się na serwerze. Te listy znajdują się w :

# ls -l /var/qmail/users/assign
-rw-r--r-- 1 root root 24546 oct 9 10:32 /var/qmail/users/assign


Nie modyfikuj ręcznie tych plików. Mają one specyficzną formę. Znajduje się tam plik cdb, który trzeba skompilować.

# head -n 4 /var/qmail/users/assign
+00-00l0-00l00l-0-0.com-:00-00l0-00l00l-0-0.com:508:503:/home/vpopmail/domains/00-00l0-00l00l-0-0.com:-:: +00h01.com-:00h01.com:508:503:/home/vpopmail/domains/00h01.com:-:: +01emarket.com-:01emarket.com:508:503:/home/vpopmail/domains/01emarket.com:-::

A jeżeli adresat znajduje się na serwerzez qmail-sent, wykorzystuje qmail-local do rozsyłania
wiadomości email lokalnie w ramach właściwego katalogu. W tym katalogu musi znajdować się plik .qmail-default, w którym vpopmail zajmuje się rozsyłaniem wiadomości email z całym systemem przekierowań, aliasów, catch-all, list mailingowych, kont pop oraz zarządzaniem wielkością skrzynki.

Konfiguracja MX

Informacje na ten temat znajdziesz w tym przewodniku : VpopmailIAdministracja

Parametry Qmail

Maksymalny rozmiar pliku

# echo "10000000" > /var/qmail/control/databytes

Wszystkie wiadomości, których rozmiar przekracza 10Mo będą odrzucane.

Czas przechowywania wiadomości w spoolu

# echo "846000" > /var/qmail/control/queuelifetime

Jeżeli wiadomość email pozostaje w spoolu przez 10 dni i nadal nie jest przesyłana, zostaje przesłana na konto postmastera serwera. Jeżeli wyżej wskazany plik nie istnieje, wiadmość elektroniczna jest zwracana po upływie 5 dni.

Odrzucanie wiadomości email z określonymi MAIL FROM

# echo "spammeur@spam" > /var/qmail/control/badmailfrom

W trakcie dialogu SMTP, serwer smtp komunikuje MAIL FROM.
Niektóre MAIL FROM mogą być odrzucane, dzięki czemu unika się przyjmowania niektórych spamów lub wirusów, które mają ustalonego nadawcę.
Uwaga: to nie ma nic wspólnego z polami From: To: Subject: wiadomości email.

Błędy

Sorry,_I_wasn't_able_to_establish_an_SMTP_connection

Próba wysłania na adres dr_adams@sm66.com
Zapytuje serwery dns o MX

; <<>> DiG 9.3.2 <<>> sm66.com mx
; global options
printcmd

;; Got answer:
; ->>HEADER<<- opcode
QUERY, status: SERVFAIL, id: 23745

; flags
qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0


;; QUESTION SECTION:
;sm66.com. IN MX

; Query time
556 msec

; SERVER
10.40.0.1#53(10.40.0.1)

; WHEN
Tue Jul 18 14:17:26 2006

; MSG SIZE rcvd
26




Jeżeli korzystasz z djbdns, można bezpośrednio użyć dnsmx.

# dnsmx sm66.com
10 mail.sm66.com


Serwer poczty elektronicznej, który zarządza wszystkimi wiadomościami @sm66.com to mail.sm66.com.
Spróbujemy więc wysałć wiadomość email :

# telnet mail.sm66.com 25
Trying 66.239.204.101...
Connected to mail.sm66.com.
Escape character is '^~o93~'.
421 newd1.sm66.com out of connection slots
Connection closed by foreign host.


Najwidoczniej serwer nie działa poprawnie. MOżemy zobaczyć informację o wystąpieniu błędu :
out of connection slots, co pozwala przypuszczać, że na tym serwerze poczty elektronicznej wystąpił w danym momencie zbyt wiele połączeń. Qmail ponownie spróbuje wysłać wiadomość.

Inny przykład : 66-2434019-directway.com?amysummers@trailerr.trailblazernews.com
Przypomina to spam.

# dnsmx trailerr.trailblazernews.com
10 stdin-mv-01.trailblazernews.com
# telnet stdin-mv-01.trailblazernews.com 25
Trying 206.131.244.8...
telnet: connect to address 206.131.244.8: Connexion refusee


Serwer MX jest obecny w internecie, ale nie istnieje serwer SMTP, który by działał.
Nie można więc połączyć się z portem 25.

# ping stdin-mv-01.trailblazernews.com
PING stdin-mv-01.trailblazernews.com (206.131.244.8) from xxxxxxx : 56(84) bytes of data.
64 bytes from news1mv.trailblazernews.com (206.131.244.8): icmp_seq=0 ttl=240 time=83.048 msec
64 bytes from news1mv.trailblazernews.com (206.131.244.8): icmp_seq=1 ttl=240 time=81.381 msec


stdin-mv-01.trailblazernews.com ping statistics

3 packets transmitted, 2 packets received, 33% packet loss
round-trip min/avg/max/mdev = 81.381/82.214/83.048/0.881 ms
# telnet stdin-mv-01.trailblazernews.com
Trying 206.131.244.8...
Connected to stdin-mv-01.trailblazernews.com.
Escape character is '^]'.
Red Hat Linux release 7.2 (Enigma)
Kernel 2.4.7-10 on an i686
login:
Login incorrect

login:
Login incorrect

login:
Login incorrect

login:
Connection closed by foreign host.



Kolejny przykład : response@sleekzine.com

# dnsmx sleekzine.com
20 mail2.sleekzine.com
30 mail3.sleekzine.com
10 mail1.sleekzine.com



Na każdy serwer przypadają trzy MX-y o różnych znaczeniach. Qmail wypróbuje zatem mail1.sleekzine.com, którego znaczenie jest najmniejsze, po czym mail2.sleekzine.com, a następnie mail3.sleekzine.com.


# telnet mail1.sleekzine.com 25
Trying 216.93.189.135...
telnet: connect to address 216.93.189.135: Connexion terminee par expiration du delai d'attente
# telnet mail1.sleekzine.com 25
Trying 216.93.189.135...
telnet: connect to address 216.93.189.135: Connexion terminee par expiration du delai d'attente
# telnet mail3.sleekzine.com 25
Trying 216.93.189.133...
telnet: connect to address 216.93.189.133: Connexion refusee



Oto co qmail robi z taką wiadomością email :

# echo "test" | mail -s "test" response@sleekzine.com
# ps auxw
[...]
qmailr 7066 0.0 0.5 2568 736 ? S 15:04 0:00 qmail-remote sleekzine.com root@nsxxxx.ovh.net response@sleekzine.com
[...]
# tail -f /var/log/qmail/current
@400000003f880003024f7034 new msg 66208
@400000003f880003024fbe54 info msg 66208: bytes 229 from <root@nsxxxx.ovh.net> qp 7065 uid 0
@400000003f88000303f530f4 starting delivery 67496: msg 66208 to remote response@sleekzine.com
@400000003f88000303f5447c status: local 0/10 remote 1/20
@400000003f88003f221f1d74 delivery 67496: deferral: Sorry,6_I_wasn't_able_to_establish_an_SMTP_connection._(#4.4.1)/
@400000003f88003f221f30fc status: local 0/10 remote 0/20


553 sorry, that domain isn't allowed to be relayed thru this MTA

Jeżeli serwer nie przesyła wiadomości email, oznacza to, że :
- ip połączenia nie jest w /etc/tcp.smtp (zajrzyj do rozdziału relay)
- adresat nie ma konta na serwerze (zajrzyj do rozdziału mx)

$$ telnet mx1.ovh.net 25
Trying 213.186.33.29...
Connected to mx1.ovh.net.
Escape character is '^]'.
220 Welcome ! You are on server 2 called mx1.ovh.net, spam protected: www.spam-rbl.com ESMTP
HELO ping.ovh.net
250 Welcome ! You are on server 2 called mx1.ovh.net, spam protected: www.spam-rbl.com
MAIL FROM:<oles@ovh.net>
250 ok
RCPT TO:<mongr@wanadoo.fr>
553 sorry, that domain isn't allowed to be relayed thru this MTA (#5.7.1)
QUIT
221 Welcome ! You are on server 2 called mx1.ovh.net, spam protected: www.spam-rbl.com
Connection closed by foreign host.



W tym przypadku widać, że konto wanadoo.fr nie jest zarządzane na mx1.ovh.net i chodzi po prostu o kłopot z relay'em : ip połączenia nie jest zadeklarowany w /etc/tcp.smtp (zajrzyj do rozdziału relay).


Jeżeli konto ma być zadeklarowane na serwerze poczty elektronicznej i wystąpił u Ciebie ten błąd, sprawdź uważnie, czy domena jest w /var/qmail/bin/assign, i czy uruchomiłeś ponownie qmail-send przy pomocy

# killall -HUP qmail-send


Może to być spowodowane fałszywą deklaracją na serwerze dns, gdzie wskazany jest serwer poczty elektronicznej, który nie ma nic wspólnego z Twoją domeną, a więcnie zna jej i nie ma zamiaru przesyłać wiadomości elektronicznych.

qmail_has_prog_delivery_but_has_x_bit_set._(#4.7.0)

Oznacza to, że prawa dostępu do katalogu /home/vpopmail posiadają uprawnienia wykonania, chociaż nie musi być tak zawsze (chmod 700 zamiast chmod 600 na .qmail-alias)

Oto skrypt przydatny przy poprawianiu tych uprawnień :
#!/bin/sh
cd /home/vpopmail/domains
chown -R vpopmail.vchkpw .
for file in `find . `
do
if -d $file
then
chmod 700 $file
else
chmod 600 $file
fi
done



553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)

Oznancza to, że Twoja domena nie została skonfigurowana w /var/qmail/control/rcpthosts.

Przykład domeny 'test.com', która została zainstalowana i przypadkowo wymazana z /var/qmail/control/rcpthosts
Oto co otrzymujemy, kiedy podejmujemy próbę wysłania wiadomości na adres postmaster@test.com :


$ telnet nsXXXX.ovh.net 25
Trying 213.186.XX.XX...
Connected to nsXXXX.ovh.net.
Escape character is '^]'.
220 nsXXXX.ovh.net ESMTP
HELO ping.ovh.net
250 nsXXXX.ovh.net
MAIL FROM:<oles@ovh.net>
250 ok
RCPT TO:<postmaster@test.com>
553 sorry, that domain isn't allowed to be relayed thru this MTA (#5.7.1)
QUIT
Connection closed by foreign host
$

Uwaga: trouble injecting bounce message, will try later
Oznacza to, że kolejka gmail została przerwana. Należy ponownie stworzyć kolejkę gmail.