当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 10 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [转帖]还有一个。Sendmail配置终极指南
帖子发表于 : 2005-07-26 16:27 
头像

注册: 2005-07-01 13:09
帖子: 548
地址: 广西南宁
送出感谢: 0 次
接收感谢: 1
反正都是我这菜鸟看不懂的。。

在众多的邮件服务器软件中,Sendmail总是能够在每一次评比中获得荣誉,从而使它成为目前使用最为广泛的一种E-mail服务器。但是,说起Sendmail的配置,很多人会感到头痛。长期以来,很多人为此不厌其烦地一遍又一遍地在BBS、新闻组上询问其配置。笔者希望借助本文对Sendmail的使用作一个力求完满的说明。

下载及安装
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 文件内容如下:

divert(-1)
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')

编译sendmail.mc以产生需要的sendmail.cf文件:# m4 /etc/sendmail.mc > /etc/mail/sendmail.cf。

生成sendmail.cf以后,编辑sendmail.cf。在文件中,查找DS,在其后加入邮件服务器名、域名,这样可以保证当你以username@mail.domain.com或username@domain.com发信时,用户都可以收到,如下所示:

# Alias for this host
Cw mail.domain.com domain.com

然后,就可以启动Sendmail了:# /usr/sbin/Sendmail -bd -q20m。

Sendmail 8.9.x以后的版本,在缺省情况下,都默认不对未验证的计算机进行转发(Relay),所以如果要为本机以外的其他计算机进行邮件转发,这时,应该在相应的配置文件中明确告诉Sendmail要对哪几个主机进行转发。如果不考虑验证,对任何主机都进行转发的话,可以在sedmail.mc文件中加入一行:FEATURE(promiscuous_relay)。

不过,如果你的计算机是放在公网上的话,建议你不要这样做,因为这样做了以后,任何人都可以使用你的计算机进行转发邮件了,特别是一些别有用心的人或一些兜售客(spammer,垃圾邮件制造者)会利用你的邮件服务器的转发功能乱发大量的垃圾邮件。

使用说明
通常情况下,Sendmail不会为邮件服务Relay信息,这样可以防止一些有恶意的人利用别人的邮件服务器乱发邮件。缺省情况下,Sendmail关闭了Relay功能。如果你要为别的服务器Relay邮件,可以进行如下设置——在access文件中加入要为其Relay信件的机器,格式为:

hostname RELAY
ipaddress RELAY

如果要为一个域内多个机器Relay信件,则可以在/etc/mail/access文件中直接加入其子网IP或域名,如下所示:

access文件内容:
domainname.com RELAY(允许为域domainname的所有计算机relay邮件)
localhost RELAY
192.168.1.0 RELAY (为192.168.1.0此网内所有机器relay邮件)

此文件惟一决定了哪些机器、哪个域可以使用邮件服务器转发邮件。完成后需要进行编译:#makemap hash access.db < access。

其他配置的文件关系不是很大,可以暂时使用缺省安装的内容。至此,Sendmail应该可以正常工作了。

接下来是测试邮件服务器的邮件发送功能,注意:测试时,不要只对本地用户进行测试,如:你的域为abc.com,测试时,不要只在邮件服务器上测试user1@abc.com用户。因为,此时user1是本地用户,所以邮件服务器可以对其进行Relay。你应该从局域网上的另一台机器使用Outlook等邮件客户端对服务器进行测试。

固定IP用户(包括跨国性公司的用户)没有问题,可以在数据库中加入其固定IP。对于经常出差在外的人,不适用。

排错
错误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地址是“lcl@lettee.com.cn”。主题 '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,试试,发信成功了!

正如前面所说的,如果你是拨号上网,下次拨号,你的IP就会改变,当然你的邮件服务器就又不让你发信了。如果公司的员工常要出差,到外地后,经常是拨通当地ISP来收发邮件。收邮件肯定没有问题,但是,邮件目前SMTP没有进行口令验证,而邮件服务器又要进行转发控制,不对未记录在数据库中的主机转发。所以,邮件是发不出去了。在这种情况下,如果像本文前面所说的那样设置全部转发功能的话,倒是可以让拨号用户发信,但同时,带来的问题就是会有很多Spam,实在是难以做到两全其美。

解决以上问题有两种方案,一种为采用SMTP认证,即用户发送邮件以前,邮件服务器进行用户身份认证,通过则服务器为其发送邮件,否则拒绝发信;第二种方案是采用动态转发授权控制(Dynamic Relay authorization control),其工作原理为:拨号用户拨号上网后,首先收邮件,如果用户能正确收邮件,则DRAC自动在access.db中加入刚才收邮件用户的IP,并允许此IP可以发信。不过,30分钟内,此IP不发/收邮件的话,DRAC将从access.db中删除此IP。此种机制保证拨号用户在没有SMTP认证的情况下,也可以通过远程邮件服务器发送E-mail

(详情,请参阅笔者的另一篇文章:利用DRAC杜绝垃圾邮件)。---鸟毛。都不知道转了多少次了。作者名字就叫佚名。。。。。。。


_________________
最新座驾:华晨中华酷宝 1.8T手动


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2005-07-27 11:27 
头像

注册: 2005-04-10 16:54
帖子: 2625
地址: 温州大学
送出感谢: 0 次
接收感谢: 1
该贴对于配置SendMail这一块讲得很到位,很有指导意义,赞一个!


_________________
我心无畏,源自于我心无知。
图片


页首
 用户资料  
 
3 楼 
 文章标题 : OHOH。是偶转过来的。
帖子发表于 : 2005-07-30 23:15 
头像

注册: 2005-07-01 13:09
帖子: 548
地址: 广西南宁
送出感谢: 0 次
接收感谢: 1
我这里关于LINUX的东西很多哦


_________________
最新座驾:华晨中华酷宝 1.8T手动


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2005-07-31 9:44 
头像

注册: 2005-04-10 16:54
帖子: 2625
地址: 温州大学
送出感谢: 0 次
接收感谢: 1
那就贴吧,然后我们来研究一下如何在Ubuntu下实现好了!呵呵!!
如果是配置方面的话,我想大致不会有什么太大的出入吧!


_________________
我心无畏,源自于我心无知。
图片


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2005-07-31 12:11 
论坛管理员

注册: 2005-03-27 0:06
帖子: 10116
系统: Ubuntu 12.04
送出感谢: 7
接收感谢: 128
sendmail没有exim4好用,关键的地方在于exim4可以很容易定义转发规则。这个是比较有用的,可以拦截某些特定的发入和发出邮件。


_________________
当净其意如虚空,远离妄想及诸取,令心所向皆无碍


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2005-07-31 12:14 
头像

注册: 2005-04-10 16:54
帖子: 2625
地址: 温州大学
送出感谢: 0 次
接收感谢: 1
exim4我没怎么用过,一叶兄有没有什么相关的文章呀?我们也学习学习!呵呵


_________________
我心无畏,源自于我心无知。
图片


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2006-03-17 13:17 

注册: 2006-02-21 15:25
帖子: 72
送出感谢: 0 次
接收感谢: 0 次
应该不支持MS EXCHANGE MAIL SERVER吧?!


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2006-07-19 11:38 
头像

注册: 2006-07-07 9:07
帖子: 81
送出感谢: 0 次
接收感谢: 0 次
看不懂。


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2006-08-10 16:54 

注册: 2006-08-08 20:37
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
root@kim-desktop:~/haha/sendmail/sendmail-8.13.7# m4 /etc/sendmail.mc > /etc/mai l/sendmail.cf
/etc/sendmail.mc:8: m4: Cannot open /usr/lib/Sendmail-cf/m4/cf.m4: No such file or directory

这个错误是编译sendmail.mc以产生需要的sendmail.cf文件时 产生的 个我该怎么办阿


页首
 用户资料  
 
10 楼 
 文章标题 : Re: [转帖]还有一个。Sendmail配置终极指南
帖子发表于 : 2010-06-27 12:06 

注册: 2008-05-25 15:52
帖子: 38
送出感谢: 0 次
接收感谢: 0 次
我用sendmail只是做客户端,通过sendmail发邮件给客户,发给客户的邮件同时要发一份给主管,并且发送不须要密码,发送的邮件在客户那要不是显示垃圾邮件,如何设置啊,急急急急急急急急急急急急急?


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 10 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译