我需要帮助我们的
Linux机器上的sendmail配置.
这里的事情:
我想通过使用我们的交换服务器作为邮件中继向外部发送电子邮件.但是当通过服务器发送电子邮件时,它将响应“用户未知”.更糟糕的是,它会将所有发送的消息恢复到我的localhost .
我已经通过使用外部邮件服务器(如gmail和yahoo)测试了我们的配置,配置工作没有任何问题,电子邮件可以发送给收件人.我的sendmail的大部分配置都基于here.
authinfo文件:
AuthInfo:my_exchange_server "U:my_name" "I:my_email" "P:my_passwd" "M:PLAIN LOGIN" AuthInfo:my_exchange_server:587 "U:my_name" "I:my_email" "P:my_passwd" "M:PLAIN LOGIN"
sendmail.mc:
FEATURE(authinfo,hash /etc/mail/authinfo.db) define(`SMART_HOST',`my_exchange server')dnl define('RELAY_MAILER_ARGS','TCP $h 587') define('ESMTP_MAILER_ARGS','TCP $h 587') define('confCACERT_PATH','/usr/share/ssl/certs') define('confCACET','/usr/share/ssl/certs/ca-bundle.crt') define('confSERVER_CERT','/usr/share/ssl/certs/sendmail.pem') define('confSERVER_KEY','/usr/share/ssl/certs/sendmail.pem') define('confAUTH_MECHANISMS','EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN') TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN') define('confAUTH_OPTIONS,'A')dnl
我的第一个假设是问题发生是由于身份验证问题,因为Exchange服务器需要加密身份验证(DIGEST-MD5).我已经在authinfo文件中更改了这个(从普通登录到digest-md5登录)但仍然无法正常工作.
我也可以telnet我们的Exchange服务器.所以端口没有被防火墙阻止.
有人可以帮我解决这个问题吗?我真的很有智慧.
谢谢.
解决方法
在Exchange Server上创建匿名中继连接器
使用powershell创建连接器
New-ReceiveConnector -Name "Anonymous Relay" -Usage Custom -PermissionGroups AnonymousUsers -Bindings 0.0.0.0:26 -RemoteIpRanges 192.168.1.1
-RemoteIpRanges
允许参数中继服务器IP地址
添加权限
Get-ReceiveConnector "Anonymous Relay" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS logoN" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"
在powershell命令之后没有auth nesessary
添加允许的中继服务器ip到列表
$RecvConn = Get-ReceiveConnector "Anonymous Relay" $RecvConn.RemoteIPRanges += "192.168.1.2","178.151.1.2","8.8.8.2" Set-ReceiveConnector "Anonymous Relay" -RemoteIPRanges $RecvConn.RemoteIPRanges
所有信息均可在MS TechNet Allow Anonymous Relay on a Receive Connector上获得