存档

文章标签 ‘Sendmail’

redmine配置邮件服务器的问题

2012年5月8日 没有评论

  一台redmine,以前是直接指定特殊smtp服务器并设定帐号密码的,但现在我们想改成用本地的smtp服务,于是我修改了文件apps/redmine/config/configuration.yml,在其中将邮件设置那一段改成了:

email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25

重启redmine,再发测试邮件,页面报错:“501 5.0.0 HELO requires domain address”,maillog里报错:“localhost [127.0.0.1] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
自己手工telnet localhost 25发邮件测试,发现直接HELO不带domain,一样可以正确发出邮件来,只不过有报警而已。
但redmine不行啊,貌似他收到501后,就退出不发了,没办法,再次修改apps/redmine/config/configuration.yml,邮件服务器那段改成:

email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25
      domain: "localhost"

ctlscript.sh restart redmine

重启redmine,一切搞定了。

分类: Operation System 标签: ,

mysql包未装导致sendmail不能发信的问题

2011年4月15日 没有评论

这是as4的机器上发现的问题
maillog里老报:

Apr 15 12:48:25 admin sendmail[15179]: p3F4mPdv015179: Losing ./qfp3F4mPdv015179: savemail panic
Apr 15 12:48:25 admin sendmail[15179]: p3F4mPdv015179: SYSERR(root): savemail: cannot save rejected email anywhere

再看/var/log/message,发现报:

unable to dlopen /usr/lib/sasl2/libsql.so.2: libmysqlclient.so.14: cannot open shared object file: No such file

系统里/usr/lib/sasl2/libsql.so.2是指向/usr/lib/sasl2/libsql.so.2.0.19的

ldd /usr/lib/sasl2/libsql.so.2.0.19

发现libmysqlclient.so.14找不到,原来以为这应该是在包mysqlclient里的
结果不是,libmysqlclient.so.10是在包mysqlclient里的,libmysqlclient.so.14是在包mysql里的,于是上centos上抓了个版本4下的mysql包装上,就好了。

启动sendmail时出错:“sql_select option missing”

2009年4月21日 没有评论

升级了一台rhel as4u7到rhel as5u3
启动sendmail时/var/log/messages里记错:

sql_select option missing
auxpropfunc error no mechanism available

rpm -qa | grep cyrus-sasl
发现有个cyrus-sasl-sql软件包
rpm -e cyrus-sasl-sql
删掉即可

sendmail做有针对性的open relay

2009年1月8日 1 条评论

这几天把以前搭的一个nagios系统挪到另外一台机器上去
除开挪系统本身
还有些其它的相关问题需要解决
1,报警短信用的短信部门的发信接口,这个接口貌似是ip认证的,换了机器,可能还需要他们改认证;
2,报警邮件。报警信息是需要发到公司信箱的,但mis的同学不知道基于什么考虑,居然对公司的公网ip限制了到mx的公网的smtp的访问!!走内网直接发到那台mx上吧,mx在办公室,我的服务器在idc,策勒是禁止idc直接访问办公室私网的(除非单独申请,以前跑nagios的机器就是单独申请的权限)
最后发现
问题一其实不存在,因为短信那边的接口程序没有限制新nagios的ip
至于问题二,我不想再去找人填单子、开权限啥的,我想用原来的那台nagios机器做relay来发报警邮件。
于是接下来
就是搞sendmail了
老nagios里的sendmail以前是只监听本地(127.0.0.1)的25口的,需要添加监听私网地址的25口
于是添加下面一行

O DaemonPortOptions=Port=smtp,Addr=10.0.0.1, Name=MTA

到/etc/mail/sendmail.cf文件的这一行

O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA

的后面
其中10.0.0.1是老nagios的私网ip
接着
要让老nagios对新nagios的私网ip打开relay权限
这个方法有两种
1,修改文件/etc/mail/relay-domains
在其中添加新nagios的私网ip
2,修改文件/etc/mail/access
加入新nagios私网ip的relay权限的描述,再生成sendmail所用的.db文件
我用的是方法1,因为不用在生成db文件:)

debian上的exim4开启往外(internet)发邮件

2008年8月20日 没有评论

debian下缺省安装的mta是exim4
那天netstat -nap | grep LISTEN一看
exim4监听着127.0.0.1的25端口
用惯了redhat系列的我想当然的认为:
嗯,不错,监听本地25端口,接收本地邮件然后根据需要往外(internet)发
这个跟redhat缺省的sendmail是一样的
但后来
发现原来定时备份的邮件收不到了
一看系统退回的信件:

Mailing to remote domains not supported

老是报这个错误
这才发现
原来debianexim4缺省是不支持往internet上发信的

于是编辑下配置文件/etc/exim4/update-exim4.conf.conf

dc_eximconfig_configtype=’local’

改成

dc_eximconfig_configtype=’internet’

再重起exim4
/etc/init.d/exim4 stop;/etc/init.d/exim4 start

这时exim4还是监听着本地127.0.0.1的25口
但是已经支持往internet上发信了

目录权限导致sendmail不能发信的问题

2008年1月29日 没有评论

发现一台测试机器的sendmail不能发信了
翻开/var/log/maillog一看
发现大段的error信息:

NOQUEUE: SYSERR(root): /etc/mail/submit.cf: line 546: fileclass: cannot open ‘/etc/mail/trusted-users’: World writable directory

查了下资料
发现应该是目录权限过宽的原因(一般是777)

但是据查
/etc/mail/trusted-users文件的权限是644
/etc/mail/目录的权限是755
貌似都没有问题呀
在仔细看看资料
原来
sendmail要检查”/”、”/etc/”、”/etc/mail/”这三个目录的权限
不仅仅是目录”/etc/mail/”
我再一查
果然
“/”的权限让某人给改成了777
//faint
然后我
chmod 755 /
然后就好了

/etc/hosts文件里的www.abc.com.和www.abc.com有什么区别

2007年7月10日 1 条评论

问题来源于工作中碰到的一个需求
公司在idc的服务器有需求向公司内部的工作邮件发信
但是公司内部邮件系统的真正的mx记录所指的机器(mail.abc.com)又把公司idc网段的公网ip给封了
(为什么会这样呢,不懂)
就是说,直接走正常渠道发信是发不过去的
为了解决这个问题
公司内部邮件系统的服务器的内网ip(10.10.10.10)对公司idc网段的机器开放了(用内网ip相连)
也就是说给abc.com这个域的用户发信直接发给mail.abc.com(这是公网ip)不行
发给10.10.10.10可以
但是abc.com的mx记录又不指向10.10.10.10
于是我就想能不能通过/etc/hosts文件来解决这个问题
于是我在/etc/hosts文件里把mail.abc.com指向ip地址10.10.10.10(收abc.com域的信的机器的内网ip)
发现还是不行
log上还是报连接mail.abc.com(真实公网ip) Deferred了
看到这里解析出来的mail.abc.com.的还是公网地址,就知道/etc/hosts的方法没成功
突然我看到这里的“mail.abc.com.”最后多出了个“.”
灵机一动
我把/etc/hosts里的”mail.abc.com”改成了”mail.abc.com.”
这下,居然成功了!
随后,我就考虑:

“/etc/hosts文件里的域名部分的mail.abc.com和mail.abc.com.有什么区别呢”

分类: 未分类 标签: ,