Używam Sendmaila na serwerze Centos do wysyłania wiadomości e-mail dla skryptów PHP, ale problem polega na tym, że poczta jest dostarczana do lokalnej skrzynki pocztowej na komputerze, a nie to, co jest określone w rekordach MX dla domeny - które faktycznie wskazują na inny komputer I używać do wiadomości e-mail.
Chciałbym, aby sendmail nie próbował dostarczać poczty lokalnie dla domeny, dla której skonfigurowano urządzenie, czy istnieje prosty sposób na wyłączenie dostarczania lokalnego?
Domena nie znajduje się w pliku nazw hosta lokalnego.
Robiłem już dużo googlingu i spojrzałem na:
Konfiguracja Sendmail, aby nie dostarczać poczty do lokalnego komputera
Wyłącz dostarczanie lokalne w Sendmail
Ale albo nie ma odpowiedzi, albo jest nieodpowiednia.
Nie chcę przekazywać na inny serwer, chcę tylko, aby wysyłał pocztę niezależnie od domeny.
Aby podać przykład:
Mam dwa serwery, jeden to serwer pocztowy w mail.example.com i serwer internetowy, który jest example.com, kiedy korzystam z usługi smtp na serwerze internetowym, aktualnie kieruję pocztę do lokalnej skrzynki pocztowej na example.com, ale powinien być wysyłany do skrzynek pocztowych na mail.example.com
Dane wyjściowe sendmail -bt zwraca:
TRYB TESTU ADRESU (zestaw reguł 3 NIE jest wywoływany automatycznie) Wchodzić > 3,0 [email protected] Kanonizacja danych wejściowych: info @ przyklad. com Wejście Canonify2: informacje Zwraca Canonify2: informacje zwroty kanoniczne: informacje parsowanie danych wejściowych: informacje Parse0 input: info Parse0 zwraca: informacje Wejście ParseLocal: informacje Zwraca ParseLocal: informacje Parse1 input: info Parse1 zwraca: $ # local $: info parsuje zwraca: $ # local $: info
Odpowiedzi:
Co zrobiłem, aby wyłączyć dostawę lokalną. Będę korzystać z domeny example.com.
Wymagania:
Kroki:
na końcu:
i wtedy:
testowanie:
Powinieneś zobaczyć, jak łączy się z serwerem Google, a następnie powinieneś zobaczyć swoją pocztę dostarczaną do skrzynki odbiorczej Google.
źródło
sendmailconfig
, dodaj określone linie, uruchomsendmailconfig
ponownie i zrób a,service sendmail restart
a to zadziała!/etc/passwd
ietc/passwd
Dzięki Sporkerowi i Pawłowi ustawiłeś mnie we właściwym kierunku, aby to naprawić.
Mój pierwotny problem polegał na tym, że sendmail rozważał moje konta e-mail example.com jako konta lokalne.
Te linki okazały się bardzo przydatne: Sendmail do domeny lokalnej ignoruje rekordy MX (część 2) http://lists.freebsd.org/pipermail/freebsd-questions/2004-September/057382.html http://objectmix.com/sendmail/ 367920-sendmail-ignoruje-mailertable-some-semilocal-domains.html
Ale w moim przypadku, używając FreeBSD 8.2, tak naprawdę udało się to:
# cd /etc/mail
# vim freebsd.mc
Dodaj te dwie linie:
Tuż przed:
# make
--- To jest wyjście ---
--- Koniec produkcji ---
# cp sendmail.cf sendmail.cf.bak
# cp host.example.com.cf sendmail.cf
# /etc/rc.d/sendmail restart
Mam nadzieję, że zaoszczędzi to komuś ból głowy.
źródło
Nie jestem osobą sendmaila, ale wierzę, że sendmail będzie traktował każdą domenę przechowywaną w
/etc/mail/local-host-names
nazwie lokalnej.Możesz spróbować opróżnić ten plik (nie usuwaj go) i ponownie uruchom sendmaila i sprawdź, jak sobie radzisz.
EDIT
nazwa pliku już wspomniałem jest właściwie ustawiony w
sendmail.cf
i twój nie może być ustawionylocal-host-names
zajrzeć
/etc/mail/sendmail.cf
doTo nie są w żaden sposób sprawdzone fakty, ale tylko ja myślę głośno.
źródło
To może nie być rozwiązanie, którego szukasz, ale jeśli Twoim problemem jest to, że użytkownik „admin” lub „root” otrzymuje wiele wiadomości e-mail i ogromną skrzynkę pocztową, możesz rozważyć skonfigurowanie zadania cron w celu wyczyszczenia skrzynki pocztowej poza każdym tygodniem, dniem itp.
Mieliśmy kilka serwerów CentOS z tym problemem, ale problem polegał na tym, że chcieliśmy czasami czytać pocztę, ponieważ może to czasem pomóc zdiagnozować różne problemy.
Rozwiązaniem było po prostu cron zadanie i od czasu do czasu wycierać pudełko.
Gdybyśmy znaleźli problem ... komentujemy zadanie crona (tymczasowo) i czytamy logi i e-maile w poszukiwaniu wskazówek.
Tylko myśl ... i szybkie / łatwe rozwiązanie dla Ciebie.
Jeśli nie, spójrz na plik sendmail.mc i odpowiednio zmodyfikuj.
Szybka aktualizacja:
Nie jest to dokładnie to, o co prosisz, ale może dać ci kilka pomysłów i pomóc rzucić nieco światła na rzeczy dla Ciebie:
http://www.pettingers.org/code/sendmail-local.html
źródło
Osobiście jestem bardziej postfiksem, ale brzmi to tak, jakbyś skonfigurował serwer wysyłający do odbierania poczty dla @ twojadomena.com. Jeśli w postfiksie znajduje się sendmail odpowiadający mechanizmowi transportu, właśnie tego używam do wewnętrznego kierowania poczty między moimi serwerami.
źródło
Wygląda na to, że zestaw reguł 3 usuwa informacje o domenie. Poniżej zamieściłem kilka ogólnych kroków rozwiązywania problemów. Jeśli to nie zadziała, będziesz musiał wysłać mi swój sendmail.cf, aby zobaczyć.
Z danych wyjściowych przyklad.com jest traktowany jako domena lokalna. wykonaj nslookup:
ustaw q = mx
domena.com
Jeśli daje to adres IP komputera lokalnego, musisz spojrzeć na swój dns. Zajrzyj również do / etc / hosts, aby upewnić się, że domain.com nie ma na liście.
Wydaje się również, że usuwa domenę @ domain.com. Czy możesz spróbować czegoś takiego jak uż[email protected], aby sprawdzić, czy zawiera ona również domenę lokalną.
Sprawdź także wartość Cw w pliku sendmail.cf.
źródło
Prawdopodobnie nie to, czego chcesz, ale SSMTP jest bardzo miły dla serwera tylko wychodzącego, na którym możesz określić hub poczty.
źródło
Jeśli chcesz zwrócić błąd przy próbie dostarczenia na adres lokalny, możesz użyć mapy dostępu i czegoś takiego:
Jeśli chcesz, aby wiadomości e-mail były „dostarczane”, ale wyrzucane, możesz zainstalować wpis, który umożliwia aliasowanie wszystkiego dla „
@your.domain
” zerowania. Przydatne może być dostarczanie co najmniej "root
" lokalnie, ponieważ często jest to odbiorca raportów e-mail z zadań cron itp. Spróbuj czegoś takiegovirtusertable
:Dzięki lokalnemu
dev-null
aliasowi, który przekierowuje wiadomości do / dev / null, powinno to nadal dostarczać pocztę główną, ale wyrzucać wiadomości dostarczane innym użytkownikom.źródło
Poprawka Pawla działała dla mnie, ale sendmailconfig nie istniał na centos, więc musiałem biec
aby zaktualizować konfigurację
źródło
Potwierdzenie odpowiedzi Pawła rozwiązało mój bardzo podobny problem.
Dla każdego, kto używa FreeBSD, ale nie jest zainteresowany zbytnim zaangażowaniem się w dręczenie plików sendmail cf, następująca sekwencja posłuży do dodania dwóch wierszy w przykładzie Pawła:
źródło
Zastosowałem się do tych sugestii i zauważyłem, że dodając krok, o którym wspomniał Paweł,
„/ etc / hosts definiujące przyklad.com przypisany do tego samego adresu IP co powyżej”, w zasadzie dodałem adres IP mojego serwera, a następnie nazwę serwera do
/etc/hosts
pliku i to wszystko.Wystarczało, żebym wysłał e-maile przez Google i wrócił do moich e-maili.
źródło
Jeśli używasz Cpanel / WHM do zarządzania serwerem, upewnij się, że wybierasz Remote Mail Exchanger w Cpanel / WHM zamiast Automatycznie wykryj konfigurację. Remote Mail Exchanger wyśle wszystkie wiadomości e-mail za pośrednictwem rekordów MX, w tym domeny lokalnej. Dzięki funkcji Automatic wiadomości lokalne w domenie będą kierowane bezpośrednio lokalnie i nie będą wysyłane na serwer zewnętrzny zdefiniowany w rekordach MX.
źródło