我在server1和server2上都安裝了sendmail。他們使用相同的配置文件:sendmail.mc。我可以使用電腦上的電子郵件客戶端向同一服務器上的用戶發送/接收郵件。但我無法將電子郵件發送給其他服務器上的用戶。例如,我無法使用電子郵件客戶端從[email protected]向[email protected]發送電子郵件。我已將我的PC的IP地址添加到server1上的/ etc/mail/access(Connect:zz.zz.zz.zz RELAY)並重新構建了access.db。查看/ var/log/maillog,server1上的sendmail已成功接受來自PC的郵件,但在連接到服務器2時等待了很長時間。sendmail無法將電子郵件轉發到其他服務器
Apr 3 07:21:06 server1 sendmail [19771]:v33BKxfr019769:SMTP傳出連接上server1.xxxxx.com
然後超時:
04月03日7時26分06秒的sendmail server1的[19771]:v33BKxfr019769:超時從server2domain.com等待輸入。 v33BKxfr019769:爲=,ctladdr =(五百〇一分之五百〇一),延遲= 00:05:04,xdelay = 00:05:00,郵件收發器的客戶端問候
04月03日7時26分06秒的sendmail server1的[19771]過程中= esmtp,pri = 121178,relay = server2domain.com。 [yy.yy.yy.yy],dsn = 4.0.0,stat = Deferred:連接超時server2domain.com。
在server2,則該日誌:
04月03日7時18分02秒的sendmail服務器2 [20121]:v33BI2Os020121:分配的id
04月03日7時18分02秒的sendmail服務器2 [20121]:NOQUEUE :AUTH:可用機甲=匿名, 允許機甲= EXTERNAL GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5
從[XX.XX.XX.XX]04月03日7時18分02秒的sendmail服務器2 [20121]連接
Apr 3 07:18:02 server2 sendmail [20121]:v33BI2Os020121:M ILTER:沒有有源濾波器
04月03日7時23分02秒的sendmail服務器2 [20121]:STARTTLS =服務器,信息:FDS = 6/4,ERR = 5
04月03日7時23分02秒的sendmail服務器2 [20121]:STARTTLS = server,error:accept failed = 0,SSL_error = 5,errno = 0,retry = -1,relay = [xx.xx.xx.xx]
Apr 3 07:23:02服務器2的sendmail [20121]:v33BI2Os020121:斷開電平1
04月03日7時23分02秒的sendmail服務器2 [20121]:v33BI2Os020121:在背景,PID = 20121
Apr 3 07:23:02 server2 sendmail [20121]:v33BI2Os020121:[xx.xx.xx.xx]在連接到MTA-SSL期間未發出MAIL/EXPN/VRFY/ETRN
我可以成功發送電子郵件給服務器1上的server2使用openssl命令,不需要輸入用戶名/密碼。 的sendmail.mc是:
divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for linux')dnl
OSTYPE(`linux')dnl
define(`confDEF_USER_ID', ``8:12'')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST', `True')dnl
define(`confDONT_PROBE_INTERFACES', `True')dnl
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt')dnl
define(`confSERVER_CERT', `/etc/pki/tls/certs/sendmail.pem')dnl
define(`confSERVER_KEY', `/etc/pki/tls/certs/sendmail.pem')dnl
define(`confCRL', `/etc/pki/tls/certs/revoke.crl')
define(`confCLIENT_CERT', `/etc/pki/tls/certs/sendmail.pem')
define(`confCLIENT_KEY', `/etc/pki/tls/certs/sendmail.pem')
define(`confTO_IDENT', `0')dnl
FEATURE(`no_default_msa', `dnl')dnl
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
DAEMON_OPTIONS(`Family=inet, Port=465, Name=MTA-SSL, M=s')dnl
CLIENT_OPTIONS(`Family=inet')dnl
FEATURE(`accept_unresolvable_domains')dnl
LOCAL_DOMAIN(`localhost.localdomain')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 465')
define(`ESMTP_MAILER_ARGS', `TCP $h 465')
MAILER(smtp)dnl
MAILER(procmail)dnl
兩個sendmail的監聽端口465,我懷疑這個問題是關係到身份驗證,但不知道原因。
請幫忙,謝謝!
採用Andrzej A. Filip的建議並刪除sendmail中的兩行。mc,server1上的日誌中發生以下錯誤:
Apr 3 13:02:25 server sendmail [19927]:v33BKxfr019769:makeconnection(server2domain.com。[yy.yy.yy.yy])failed:Connection由server2domain.com拒絕。 04月03日13時02分25秒的sendmail服務器[19927]:v33BKxfr019769:的makeConnection(server2domain.com [yy.yy.yy.yy]。)失敗:連接由server2domain.com拒絕。 Apr 3 13:02:25 server sendmail [19927]:v33BKxfr019769:to =,ctladdr =(501/501),delay = 05:41:23,xdelay = 00:00:01,mailer = esmtp,pri = 301178 ,relay = server2domain.com。 [yy.yy.yy.yy],dsn = 4.0.0,stat = Deferred:連接被server2domain.com拒絕。
沒有登錄服務器2的消息。
我認爲沒有兩行,server1上的sendmail將嘗試通過端口25連接server2,而不是sendmail正在偵聽的端口465。
謝謝你的建議。但有新的錯誤發生(包括在原始問題的結尾處)。 – peter
你能telnet服務器2上的端口25或587嗎?你有smtp問候消息嗎? 'telnet server2domain.com 587'順便說一下'FEATURE(no_default_msa)'關閉監聽端口587上的連接。 – AnFi
我無法telnet/openssl服務器2上的端口25或端口587從server1。使用netstat -antp,我發現server1上的sendmail連接到server2上的端口465,即使沒有兩行。稍後,我在兩臺服務器上註釋FEATURE(no_default_msa)行,並將server1上兩行中的端口465更改爲587,然後可以成功中繼郵件。看起來繼電器不能通過端口465完成,但可以通過587完成。但是,AFAIR,通過端口587的通信未加密且不安全。所以我想知道爲什麼它不能使用端口465。 – peter