Intereting Posts
Библиотека IOCTL () для Windows создать тире Нулевая устаревшая ZFS-метка с диска с dd Каков предел количества потоков? systemd – Мой пользовательский сервис выходит с кодом состояния 216 / GROUP Сортировка строк на основе номера переменной ширины в фиксированном положении Что запускается, когда программа предлагает вам открыть файл в Linux? Запретить пользователю удалять папки и файлы в собственном доме Как снова сделать взломанные файлы в репозитории Subversion? Могут ли readahead-сервисы быть безопасно отключены? Можно ли установить PHP 5.2.17 на новую систему CentOS 6.4? Правила Udev, связанные с X11, не запускаются при запуске Почему моя настройка блока blockdev не выполняется из rc.local при перезагрузке Как написать файл с различными смещениями в раздел файловой системы с помощью команды dd Какие терминальные кодировки используются по умолчанию для Linux и которые наиболее распространены?

Проблема Sendmail с текстовыми сообщениями AT & T SMS

У меня есть почтовое реле, работающее должным образом, где мой хост DigOc (который имеет много доменов на нем) ретранслирует почту через мой отдельный почтовый сервер с общим доступом на основе cPanel, регистрируясь в учетной записи электронной почты, которую я там есть. (Это упрощенная процедура для меня, чем установка и настройка Postfix.)

Все работает фантастично, за исключением тех случаев, когда я хочу отправить текстовые сообщения AT & T SMS, такие как:

8431112222@txt.att.net

(Я, очевидно, изменил это число.)

Это работает, если я вручную отправлю почту через Gmail на нее из своего веб-браузера, но не если я использую PHP-скрипт или скрипт Bash с почтовой техникой sendmail. Когда я проверяю журнал почты, я вижу следующее. Обратите внимание, что я изменил IP-адрес и номер телефона по назначению.

Jun 8 17:25:39 corp1 sendmail[5826]: u58HPdCP005826: from=root, size=51, class=0, nrcpts=1, msgid=<201606081725.u58HPdCP005826@corp1.104-226-131-166-com>, relay=root@localhost Jun 8 17:25:39 corp1 sm-mta[5827]: u58HPdKW005827: from=<root@corp1.104-226-131-166-com>, size=314, class=0, nrcpts=1, msgid=<201606081725.u58HPdCP005826@corp1.104-226-131-166-com>, proto=ESMTP, daemon=MTA-v4, relay=corp1.104-226-131-166-com [127.0.0.1] Jun 8 17:25:39 corp1 sendmail[5826]: u58HPdCP005826: to=8431112222@txt.att.net, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30051, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (u58HPdKW005827 Message accepted for delivery) Jun 8 17:25:39 corp1 sm-mta[5829]: STARTTLS=client, relay=mx3a.txt.att.net., version=TLSv1/SSLv3, verify=FAIL, cipher=DHE-RSA-AES256-SHA, bits=256/256 Jun 8 17:25:39 corp1 sm-mta[5829]: u58HPdKW005827: to=<8431112222@txt.att.net>, ctladdr=<root@corp1.104-226-131-166-com> (0/0), delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=120314, relay=mx3a.txt.att.net. [166.216.149.129], dsn=5.0.0, stat=Service unavailable Jun 8 17:25:39 corp1 sm-mta[5829]: u58HPdKW005827: u58HPdKW005829: DSN: Service unavailable Jun 8 17:25:39 corp1 sm-mta[5829]: u58HPdKW005829: to=<root@corp1.104-226-131-166-com>, delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30000, dsn=2.0.0, stat=Sent 

Я сильно подозреваю, что проблема заключается в этой строке:

 Jun 8 17:25:39 corp1 sm-mta[5829]: STARTTLS=client, relay=mx3a.txt.att.net., version=TLSv1/SSLv3, verify=FAIL, cipher=DHE-RSA-AES256-SHA, bits=256/256 

Есть ли что-то очевидное, что мне нужно сделать в моей конфигурации Sendmail, которая могла бы помочь заставить это почтовое сообщение работать?

РЕДАКТИРОВАТЬ

Взял @Andderzej совет и сделал этот шаг . Ответ я получаю:

 8431112222@txt.att.net... Connecting to mx3a.txt.att.net. via esmtp... 220 alpemg-mtmta04 bizsmtp ESMTP server ready >>> EHLO corp1.104-226-131-166-com 250-alpemg-mtmta04 hello [104.226.131.166], pleased to meet you 250-HELP 250-SIZE 1500000 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-STARTTLS 250 OK >>> STARTTLS 220 2.0.0 Ready to start TLS >>> EHLO corp1.104-226-131-166-com 250-alpemg-mtmta04 hello [104.226.131.166], pleased to meet you 250-HELP 250-SIZE 1500000 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 OK >>> MAIL From:<root@corp1.104-226-131-166-com> SIZE=65 554 5.1.0 corp1.104-226-131-166-com has no MX or A record /root/dead.letter... Saved message in /root/dead.letter Closing connection to mx3a.txt.att.net. >>> QUIT 

Благодаря @JennyD это выглядит как решение:

  1. Включите отладку на тестовом скрипте sendmail, чтобы получить точную картину проблемы.

  2. Даже если ретрансляция через другой хост, некоторые почтовые серверы проверяют вас. Поэтому вам нужен действительный домен в MASQUERADE_AS () в файле /etc/mail/sendmail.mc, он должен находиться на этом же сервере и должен отвечать на DNS-запрос записей A и MX. Этот домен не обязательно должен быть фактическим доменом, на который вы хотите передать From: или даже Reply-To :, но это всего лишь домен, на который будет проверяться почтовый сервер получателя.

  3. Вам нужно будет прочитать MASQUERADE_DOMAIN, а затем allmasquerade, masquerade_envelope и masquerade_entire_domain FEATURE, чтобы узнать, нужны ли они вам, и запустить несколько тестов, если вы обслуживаете почту для нескольких доменов с одного хоста. В моем случае я не нуждался ни в одном из них. Теперь я могу отправить почту так, как если бы она была с x.com, y.com и z.com с одного и того же хоста, и когда почтовый сервер AT & T проверяет, какой почтовый сервер отправил его, он перечислит x.com в моем случае. Однако, когда появляется текстовое сообщение SMS-сообщения, я могу заставить его выглядеть так, как будто это с сайта x.com, y.com и z.com.

  4. Вы также можете столкнуться с необычностью с почтовыми серверами AT & T (и, возможно, с другими почтовыми серверами), где вам нужно добавить 5-й параметр в свою команду mail() в PHP. Я должен был настроить мою mail($sEmail,'',"HERE IS YOUR ALERT",'','-fuseralerts@x.com'); для мобильных оповещений, где x.com был доменом «Адрес:», который я хотел, и $sEmail – ваш адрес To: address, например 8431112222@txt.att.net . Не указывайте пробел после параметра -f .

Первой и основной проблемой является то, что ваш sendmail настроен на использование имени хоста, которого не существует, в домене, который не существует. Нет домена под названием «104-226-131-166-com». Это означает, что всякий раз, когда какой-либо скрипт или системная функция отправляет почту без указания адреса отправителя, он будет использовать адрес, который не работает, что, в свою очередь, означает, что некоторые системы (например, att.net) отклонят почту немедленно, другие будут сортировать его в спам-бункере или молча отбросить. И если система получателей действительно принимает почту, а затем не может ее доставить, вы не получите сообщение об ошибке, сообщающее вам о проблеме.

Вы должны изменить свою конфигурацию sendmail, чтобы имя хоста, используемое по умолчанию, является фактическим именем сервера.

Вы также должны изменить свой скрипт так, чтобы он установил свой собственный адрес отправителя на любой адрес, к которому вы хотите получить сообщения об ошибках.