Это для конкретного пользователя или всех пользователей?
Если для конкретного пользователя:
Если Вы переходите к пользователю от 'Пользователей Active Directory, и Компьютеры' переходят к там свойствам и затем 'вкладке "Общие" Exchange' и затем 'Ограничениям Доставки'. Принимают сообщения 'от аутентифицируемых пользователей, только' проверенных?
Если для всех пользователей:
Если Вы идете Свойства Виртуального сервера SMTP, хотя 'менеджер по Системе обмена' и щелчок, вкладка 'Access' и переходит к Аутентификации, 'Анонимный Доступ', Включил?
Тест от внешнего Используя Telnet:
Попробуйте к telnet к нему с внешней стороны где-нибудь:
telnet mailServerIp 25
elho
Mail From: Foo@foo.com
RCPT TO: emailThatIsNotWorking@myDomain.com
DATA
Foo
.
Лично, мой фаворит (требует удара и других вещей, которые являются стандартными на большинстве дистрибутивов Linux),
Детали могут во многом зависеть от того, что производили эти две вещи и как Вы хотите объединить их...
Содержание command1 и command2 друг после друга в выводе:
cat <(command1) <(command2) > outputfile
Или если обе команды производят альтернативные версии тех же данных, которые Вы хотите видеть рядом (я использовал это с snmpwalk; числа на одной стороне и MIB называют на другом):
paste <(command1) <(command2) > outputfile
Или если Вы хотите выдержать сравнение, вывод двух подобных команд (скажите что находка относительно двух различных каталогов),
diff <(command1) <(command2) > outputfile
Или если им заказывают какие-то выводы, объединяют их:
sort -m <(command1) <(command2) > outputfile
Или выполненный обе команды сразу (мог скремблировать вещи немного, хотя):
cat <(command1 & command2) > outputfile
<() оператор настраивает именованный канал (или/dev/fd) для каждой команды, передавая вывод по каналу той команды в именованный канал (или/dev/fd ссылка дескриптора файла) и передает имя командной строке. Существует эквивалент с> (). Вы могли сделать: command0 | tee >(command1) >(command2) >(command3) | command4
одновременно отправить вывод одной команды к 4 другим командам, например.
Можно добавить два пара другому с cat
, как шоу гориллы.
Можно также создать FIFO, направить вывод команд к который, затем читать из FIFO со что другая программа:
mkfifo ~/my_fifo
command1 > ~/my_fifo &
command2 > ~/my_fifo &
command3 < ~/my_fifo
Особенно полезный для программ, которые только запишут или считают файл или смешивание программ, которые только производят stdout/file с тем, который поддерживает только другой.
(tail -f /tmp/p1 & tail -f /tmp/p2 ) | cat > /tmp/output
/tmp/p1
и /tmp/p2
Ваши входные каналы, в то время как /tmp/output
вывод.
Будьте осторожны здесь; просто catting их закончит тем, что смешал результаты способами, которыми Вы не можете хотеть: например, если они - файлы журнала, Вы, вероятно, действительно не хотите строку от одного вставленного на полпути через строку от другого. Если это хорошо, то
хвост-f/tmp/p1/tmp/p2>/tmp/output
будет работать. Если это не хорошо, то Вы оказываетесь перед необходимостью, действительно находят что-то, что сделает буферизацию строки и только произведет полные строки. Системный журнал делает это, но я не уверен, что еще могло бы.
Править: optimalization для освободившего буфер чтения и именованных каналов:
рассматривая/tmp/p1,/tmp/p2,/tmp/p3 как именованные каналы, созданные "mkfifo/tmp/pN"
хвост-q-f/tmp/p1/tmp/p2 | awk '{печатает 0$> "/tmp/p3"; близко ("/tmp/p3"); сброс ();}' и
теперь этим путем, мы можем читать, Выходной именованный канал "/tmp/p3" освободил буфер:
хвост-f/tmp/p3
существует небольшая ошибка вида, необходимо "инициализировать" 1-й входной канал/tmp/p1:
повторите-n>/tmp/p1
для конца, будет принимать вход от 2-го канала/tmp/p2 сначала и не ожидать, пока что-то не прибывает в/tmp/p1., это не может иметь место, если Вы будете уверены, то/tmp/p1 получит вход сначала.
Также-q опция необходима для конца, не печатает мусора об именах файлов.
tail -q -f /tmp/p1 /tmp/p2 | awk '{print [110] > "/tmp/p3"; close("/tmp/p3"); fflush();}' &
теперь/tmp/p3 может быть даже именованным каналом, и можно считать его просто tail -f /tmp/p3
, все это , ОСВОБОДИЛ БУФЕР = линию за линией существует однако небольшая ошибка вида. 1-й файл/именованный канал должен быть инициализирован сначала в хвосте порядка, примет вывод от 2-го. таким образом, Вам будет нужно к echo -n > /tmp/p1
и, чем все будет работать гладко.
– readyblue
22 October 2014 в 23:47
Действительно классная команда, которую я использовал для этого, - это tpipe
, вам может потребоваться скомпилировать, потому что она не так распространена. Он действительно хорош для того, чтобы делать именно то, о чем вы говорите, и он настолько чистый, что я обычно его устанавливаю. Страница руководства находится здесь http://linux.die.net/man/1/tpipe . Список для загрузки в настоящее время находится в этом архиве http://www.eurogaran.com/downloads/tpipe/ .
Он используется так:
## Reinject sub-pipeline stdout into standard output:
$ pipeline1 | tpipe "pipeline2" | pipeline3
Я создал для этого специальную программу: fdlinecombine
Она читает несколько каналов (обычно программные выходные данные) и записывает их в стандартный вывод (вы также можете переопределить разделитель)
Лучшая программа для этого - lmerge
. В отличие от ответа Freihart, он ориентирован на линию, поэтому результат двух команд не будет сбивать друг друга. В отличие от других решений, он справедливо объединяет ввод, поэтому никакая команда не может доминировать над выводом. Например:
$ lmerge <(yes foo) <(yes bar) | head -n 4
Дает вывод:
foo
bar
foo
bar