Я использую Sendmail на сервере Centos для отправки электронной почты для сценариев PHP, но проблема в том, что почта доставляется в локальный почтовый ящик на компьютере, а не в том, что указано в записях MX для домена - которые фактически указывают на другую машину. использовать для электронной почты.
Я бы хотел, чтобы sendmail не пытался локально доставлять почту для домена, для которого настроен компьютер. Существует ли простой способ отключить локальную доставку?
Домен отсутствует в файле local-host-names.
Я уже много гуглил и посмотрел:
Конфигурация Sendmail, чтобы не доставлять почту на локальный компьютер
Отключить локальную доставку в Sendmail
Но либо ответа нет, либо он не подходит.
Я не хочу ретранслировать на другой сервер, я просто хочу, чтобы он отправлял почту независимо от домена.
Чтобы привести пример:
У меня есть два сервера: один почтовый сервер на mail.example.com и веб-сервер example.com. Когда я использую службу smtp на веб-сервере, он в настоящее время направляет почту в локальный почтовый ящик на example.com, но это должно идти в почтовые ящики на mail.example.com
Вывод sendmail -bt возвращает:
РЕЖИМ ТЕСТА АДРЕСА (набор правил 3 НЕ вызывается автоматически) Войти > 3,0 info@example.com canonify input: info @ example. ком Canonify2 вход: информация Canonify2 возвращает: информация canonify возвращает: информация анализ ввода: информация Вход Parse0: информация Parse0 возвращает: информация ParseLocal input: информация ParseLocal возвращает: информация Вход Parse1: информация Parse1 возвращает: $ # local $: info Возврат разбора: $ # local $: info
Ответы:
Что я сделал, чтобы отключить локальную доставку. Я буду использовать домен example.com.
Требования:
шаги:
в конце:
а потом:
тестирование:
Вы должны увидеть, как он подключается к серверу Google, а затем вы должны увидеть, как ваша почта доставляется в ваш почтовый ящик Google.
источник
sendmailconfig
, добавьте указанные вами строки,sendmailconfig
снова запустите и выполните a,service sendmail restart
и все работает!/etc/passwd
иetc/passwd
Благодаря Sporker и Pawel вы направили меня в правильном направлении, чтобы исправить это.
Моя первоначальная проблема заключалась в том, что sendmail рассматривал почтовые учетные записи моего домена example.com как локальные.
Эти ссылки оказались очень полезными: Sendmail на локальный домен, игнорирующий записи MX (часть 2) http://lists.freebsd.org/pipermail/freebsd-questions/2004-September/057382.html http://objectmix.com/sendmail/ 367920-Sendmail-игнорируемых-mailertable-некоторые-полулокальное-domains.html
Но в моем случае, используя FreeBSD 8.2, в действительности получилось:
# cd /etc/mail
# vim freebsd.mc
Добавьте эти две строки:
Прямо перед:
# make
--- это вывод ---
--- конец вывода ---
# cp sendmail.cf sendmail.cf.bak
# cp host.example.com.cf sendmail.cf
# /etc/rc.d/sendmail restart
Надеюсь, это избавит кого-то от головной боли.
источник
Я не человек sendmail, но я верю, что sendmail будет рассматривать любой домен, хранящийся в нем,
/etc/mail/local-host-names
как локальные доменные имена.Вы можете попытаться очистить этот файл (не удаляйте его) и перезапустить sendmail и посмотреть, как вы это делаете.
EDIT
Имя файла я уже фактически установлен в
sendmail.cf
и ваш не может быть установлен , чтобыlocal-host-names
посмотреть в
/etc/mail/sendmail.cf
течениеЭто ни в коем случае не проверенные факты, но только я думаю вслух.
источник
Возможно, это не то решение, которое вы ищете, но если ваша проблема заключается в том, что пользователь с правами администратора или root получает много писем и огромный почтовый ящик, вы можете подумать о настройке задания cron для его очистки. вне каждую неделю, день и т. д.
У нас было несколько серверов CentOS с этой проблемой, но выгода была в том, что мы хотели иногда иметь возможность читать почту, поскольку она иногда помогает диагностировать различные проблемы.
Решение состояло в том, чтобы просто выполнить работу и время от времени стирать коробку.
Если бы мы нашли проблему ... мы бы закомментировали работу cron (временно) и прочитали журналы и электронные письма для подсказок.
Просто мысль ... и быстрое / простое решение для тебя.
Если нет, взгляните на файл sendmail.mc и внесите соответствующие изменения.
Быстрое обновление:
Это не совсем то, о чем вы просите, но может дать вам некоторые идеи и помочь пролить свет на некоторые вещи для вас:
http://www.pettingers.org/code/sendmail-local.html
источник
Лично я больше постфиксный человек, но это звучит очень похоже на то, что вы настроили отправляющий сервер на получение почты для @ yourdomain.com. Если в postfix есть sendmail, эквивалентный транспортному механизму, это то, что я использую для внутренней маршрутизации почты между моими серверами.
источник
Похоже, ваш Ruleset 3 удаляет информацию о домене. Я включил некоторые общие шаги по устранению неполадок ниже. Если это не работает, вам нужно будет отправить мне свой sendmail.cf, чтобы посмотреть.
Исходя из вывода, example.com рассматривается как локальный домен. сделать nslookup:
установить q = mx
domain.com
Если это дает IP-адрес локальной машины, то вам нужно посмотреть на ваш DNS. Также посмотрите в / etc / hosts, чтобы убедиться, что domain.com не указан.
Похоже, что он также удаляет @ domain.com, не могли бы вы попробовать что-то вроде user@stackoverflow.com, чтобы увидеть, если он также перечисляет его как локальный домен.
Также проверьте значение Cw в вашем файле sendmail.cf.
источник
Вероятно, не то, что вы хотите, но SSMTP очень хорош для сервера только для исходящих сообщений, где вы можете указать почтовый концентратор.
источник
Если вы хотите вернуть ошибку при попытке доставки на локальный адрес, вы можете использовать карту доступа и что-то вроде:
Если вы хотите, чтобы сообщения электронной почты были «доставлены», но были выброшены, вы можете установить виртуальную запись, в которой псевдоним все для «
@your.domain
» равен dev-null. Это может быть полезно держать доставки по крайней мере , «root
» на местном уровне, так как часто получатель отчетов по электронной почте от хрон рабочих мест и т.д. Попробуйте что - нибудь подобное в вашемvirtusertable
:С локальным
dev-null
псевдонимом, который перенаправляет сообщения в / dev / null, это должно продолжать доставлять корневую электронную почту, но отбрасывать сообщения, доставленные другим пользователям.источник
Исправление Павла сработало для меня, но sendmailconfig не было в centos, поэтому мне пришлось бежать
обновить конфигурацию
источник
Просто подтверждение того, что ответ Павела решил мою очень похожую проблему.
Для тех, кто использует FreeBSD, но не заинтересован в участии в тяжелой работе sendmail cf file, вы должны использовать следующую последовательность для добавления двух строк в примере Pawel:
источник
Я последовал этим предложениям и заметил, что просто добавив шаг, о котором говорил Павел,
«/ etc / hosts, определяющий example.com, назначенный тому же IP-адресу, что и выше», в основном я добавил свой IP-адрес сервера, а затем имя сервера в
/etc/hosts
файл, и все.Мне было достаточно, чтобы письма переправлялись через Google и обратно на мои письма.
источник
Если вы используете Cpanel / WHM для управления вашим сервером, убедитесь, что вы выбрали Удаленный почтовый обменник в Cpanel / WHM вместо автоматического определения конфигурации. Remote Mail Exchanger отправит всю электронную почту через MX записи, включая локальный домен. При использовании Автоматически электронные письма локального домена будут напрямую направляться локально и не будут отправляться на внешний сервер, определенный в записях MX.
источник