Sendmail的最新版本为:8.11.3,文件大小为1.2MB。
1.解压缩
# tar -zxvf Sendmail-8.11.3.tar.gz
#cd Sendmail-8.11.3
如果软件包是rpm格式,则解压安装如下:
#rpm -ivh Sendmail-8.11.3-src.rpm
2.编译
# ./Build
如果不出什么问题,编译通过,编译完成后会自动生成目录:obj.Linux.2.2.18.i686(这是笔者的核心名称,也许你的内核名称与此不同)。
3.安装
#./Build install
如果是rpm 格式的软件包,则应编译如下:
# rpm -ba Sendmail-8.11.1.spec
#rpm -ivh Sendmail*.rpm
至此编译、安装完成
sendmail.cf是Sendmail的配置文件,它全权决定了Sendmail的属性。这个文件定义邮件服务器为哪个域工作。其中的内容为特定宏,大多数人对它都抱有恐惧心理,因为文件中的宏代码实在是太多。sendmail.cf通常是由一个以mc结尾的文件编译产生。如Redhat自带一个redhat.mc,用户可以自己修改其中的一些设置,使之适合自己。笔者的sendmail.mc 文件内容如下:
dnl This is the macro config file used to generate the /etc/sendmail.cf
dnl file. If you modify thei file you will have to regenerate the
dnl /etc/sendmail.cf by running this macro config through the m4
dnl preprocessor:
dnl m4 /etc/sendmail.mc > /etc/sendmail.cf
dnl You will need to have the Sendmail-cf package installed for this to work.
include(`/usr/lib/Sendmail-cf/m4/cf.m4')
define(`confDEF_USER_ID',``8:12'')
OSTYPE(`Linux')
undefine(`UUCP_RELAY')
undefine(`BITNET_RELAY')
define(`confAUTO_REBUILD')
define(`confTO_CONNECT', `1m')
define(`confTRY_NULL_MX_LIST',true)
define(`confDONT_PROBE_INTERFACES',true)
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')
FEATURE(`smrsh',`/usr/sbin/smrsh')
FEATURE(`mailertable',`hash -o /etc/mail/mailertable')
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')
FEATURE(redirect)
FEATURE(always_add_domain)
FEATURE(use_cw_file)
FEATURE(local_procmail)
MAILER(smtp)
MAILER(procmail)
FEATURE(`access_db')
FEATURE(`blacklist_recipients')
dnl We strongly recommend to comment this one out if you want to protect
dnl yourself from spam. However, the laptop and users on computers that do
dnl not hav 24x7 DNS do need this.
FEATURE(`accept_unresolvable_domains')
dnl FEATURE(`relay_based_on_MX')
Cw mail.domain.com domain.com
通常情况下,Sendmail不会为邮件服务Relay信息,这样可以防止一些有恶意的人利用别人的邮件服务器乱发邮件。缺省情况下,Sendmail关闭了Relay功能。如果你要为别的服务器Relay邮件,可以进行如下设置——在access文件中加入要为其Relay信件的机器,格式为:
ipaddress RELAY
domainname.com RELAY(允许为域domainname的所有计算机relay邮件)
localhost RELAY
192.168.1.0 RELAY (为192.168.1.0此网内所有机器relay邮件)
错误1.在Outlook中正确配置POP及SMTP服务器的地址后,出现如下错误:
无法连接到服务器。账号: '192.168.0.1',服务器: '192.168.0.1',
协议: POP3,端口: 110,安全(SSL): 否,套接字错误: 10061,
错误号: 0x800CCC0E
产生错误的原因:主要原因是没有运行POP3D 和 IMAPD
解决方法:打开 /etc/inetd.conf 查找到
# pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
把#号删掉。
打开 /etc/services 查找到
#pop3 110/tcp
#pop3 110/udp
将两行最前面的#号删掉。
这样,在restart inetd后,pop3 110端口就可以收信了!如果还是不行,请检查是否安装POP3服务软件包!
错误2:很多拨号用户会碰到以下问题:
由于服务器拒绝收件人之一,无法发送邮件。被拒绝的E-mail地址是“[email]lcl@lettee.com.cn[/email]”。主题 'ffd', 账号: 'mailns.lettee.com.cn (1)', 服务器: 'mailns.lettee.com.cn', 协议: SMTP, 服务器响应: '551 we do not relay', 端口: 25, 安全(SSL): 否, 服务器错误: 551, 错误号: 0x800CCC79
此错误表示:Sendmail不能为你正在使用的客户机Relay邮件。
错误原因:Sendmail 8.9.3以后,缺省限制了Relay功能,主要是为了防止Spammer。使用此服务器的本地用户可以发信,而以外的用户不可以通过它发信了。解决方法:在access中加入客户机的IP,重新编译access即可。
很多朋友常犯的错误是“我已经在access中加入了邮件服务器的IP地址,也对数据库文件进行了makemap工作,可依然还是不行”。其实你搞错了,应该加入的是客户机的IP——试着将你的拨号PC的IP加入到access中,makemap后,你不必重新启动Sendmail,试试,发信成功了!