tomcat webapp не аутентифицируется в sendmail на перенесенном сервере
Обзор проблемы
Я нахожусь в процессе миграции P2V, и я столкнулся с трудностями, заставляя tomcat и sendmail играть хорошо. Я не могу получить заявку на отправку почты.
Основные различия между двумя системами:
- Операционная система обновляется с CentOS 5.6 до CentOS 7.2
- Sendmail обновлен с 8.13.8 до 8.14.7
- Tomcat раньше запускался от имени пользователя root, а теперь - от имени пользователя Tomcat.
Та же самая настройка (за исключением различий выше) в настоящее время работает в физической среде.
Приложение подключается без указания имени пользователя или пароля. В конфигах sendmail нет ничего, что настраивало бы аутентификацию, кроме этого в sendmail.mc:
define(`confAUTH_OPTIONS', `A')dnl
бревна
Ключевая ошибка, которую я получаю от catalina.out:
Caused by: javax.mail.AuthenticationFailedException: No authentication mechansims supported by both server and client
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:590)
at javax.mail.Service.connect(Service.java:291)
at javax.mail.Service.connect(Service.java:172)
at com.tw.manage.business.services.MailService.sendMessage(MailService.java:97)
Полная ошибка здесь на pastebin.
Декомпилированный код com.tw.manage.business.services.MailService.sendMessage здесь.
Соответствующие app.properties здесь:
# Mail properties
# ---------------
# email server host
mailer.smtp.host=localhost
# email server port
mailer.smtp.port=25
# protocol either smtp or smtps
mailer.protocol=smtp
# user account
mailer.user=
# user password
mailer.password=
# either text/plain or text/html
mailer.mime.type=text/html;charset=UTF-8
mailer.subject.mime.type=UTF-8
# email message from email address
mailer.from=donotreply@company.com
Вот ошибка в / var / log / maillog:
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: assigned id
Jan 18 14:02:40 app-server sendmail[46298]: NOQUEUE: connect from localhost.localdomain [127.0.0.1]
Jan 18 14:02:40 app-server sendmail[46298]: AUTH: available mech=GSS-SPNEGO GSSAPI ANONYMOUS, allowed mech=EXTERNAL GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: Milter: no active filter
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: --- 220 app-server.company.inc ESMTP Sendmail 8.14.7/8.14.7; Wed, 18 Jan 2017 14:02:40 -0500
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: <-- EHLO app-server
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: --- 250-app-server.company.inc Hello localhost.localdomain [127.0.0.1], pleased to meet you
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: --- 250-ENHANCEDSTATUSCODES
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: --- 250-PIPELINING
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: --- 250-8BITMIME
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: --- 250-SIZE
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: --- 250-DSN
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: --- 250-ETRN
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: --- 250-AUTH GSSAPI
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: --- 250-DELIVERBY
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: --- 250 HELP
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: disconnect level 1
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: in background, pid=46298
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: --- 421 4.4.1 app-server.company.inc Lost input channel from localhost.localdomain [127.0.0.1]
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: lost input channel from localhost.localdomain [127.0.0.1] to MTA after ehlo
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: disconnect level 1
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: in background, pid=46298
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: localhost.localdomain [127.0.0.1] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: dropenvelope, e_flags=0x4001, OpMode=d, pid=46298
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: unlink ./dfv0IJ2exL046298
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: ./dfv0IJ2exL046298: unlink-fail 2
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: unlink ./qfv0IJ2exL046298
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: ./qfv0IJ2exL046298: unlink-fail 2
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: unlock
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: unlink ./xfv0IJ2exL046298
Jan 18 14:02:40 app-server sendmail[46298]: v0IJ2exL046298: ./xfv0IJ2exL046298: unlink-fail 2
Jan 18 14:02:40 app-server sendmail[46298]: NOQUEUE: finis, pid=46298
Вещи, которые я пробовал
Все конфигурации в / etc / mail одинаковы, бит за битом. Я проверил, что никаких изменений среды не требуется, таких как имена хостов - конфиги всегда вызывают только localhost или localhost.localdomain.
Я поместил следующее в мой файл hosts:
127.0.0.1 localhost.localdomain localhost old-app-hostname.vendor.net app-server app-server.company.inc
Я проверил отправку почты как root и другие локальные учетные записи с помощью telnet localhost 25
и был в состоянии получать почту в моем Gmail с сервера, используя нужный адрес электронной почты.
Я также попытался запустить tomcat от имени пользователя root.
1 ответ
Я обнаружил, что параметры по умолчанию должны были измениться. В sendmail по умолчанию предлагалось 8.13 ВХОД. В 8.14 кажется, что GSSAPI теперь предлагается по умолчанию. Следующая строка в /etc/mail/sendmail.mc разрешает пустую регистрацию от tomcat после перезапуска sendmail:
define(`confAUTH_MECHANISMS', `LOGIN')dnl