热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

使用sendmail配置SMTP收发邮件的方法

Sendmail的SMTP认证一直是个问题,我们来试验一下最简单的方法。一、检查所需的包是否已经安装好要使用SMTP认证,需要安装sendmail和cyrus-sasl,如果你在使用Redhat或其他的Linux版本,请检查这两个包是否已经装好二、我们来改一下几个配置文件1。先来看
Sendmail的SMTP认证一直是个问题,我们来试验一下最简单的方法。

一、检查所需的包是否已经安装好
要使用SMTP认证,需要安装sendmail和cyrus-sasl,如果你在使用Redhat或其他的Linux版本,请检查这两个包是否已经装好

二、我们来改一下几个配置文件
1。 先来看一下/usr/lib/sasl2/Sendmail.conf文件,里面的内容应该是pwcheck_method:saslauthd,将这个 文件复制成smtpd.conf,即cp Sendmail.conf smtpd.conf,这个文件也要在/usr/lib/sasl2/目录下;
2.然后/etc/init.d/saslauthd start来启动sasl的密码认证(要每次开机自动启动这项服务,就运行ntsysv选中saslauthd,再存盘退出ntsysv)。
3。修改/etc/mail/sendmail.mc文件,有3个地方要改:
第42行和43行,把最前面的dnl删除,变成:
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
第84 行DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl把里面的127.0.0.1改成0.0.0.0,这是让sendmail监听在全部网络端口上,而不是只监听在lo上,有很多 人抱怨sendmail没办法收信,这是最基本要修改的地方
好了,都改完了,我们存盘退出。
4.把mc文件编译成sendmail的配置,运行m4 sendmail.mc > sendmail.cf;
5./etc/init.d/sendmail restart(重新启动sendmail)
大功告成,重新测试OUTLOOK吧。注意在OUTLOOK里“邮件发送服务器”选中"我的服务器要求身份验证“,设置里只要选择”使用与邮件接受服务器相同的设置“即可。否则的话出现邮件服务发送的错误。
呵呵,如果有问题可以写信到我的信箱peterdog@peterdog.com或QQ:1547474来跟我交流。
还 有,要防止本地用户利用 Sendmail 服务器上的漏洞,最好是让邮件用户只使用电子邮件程序来访问 Sendmail 服务器。邮件服务器上的 Shell 帐号不应该被允许,/etc/passwd 文件中的所有用户 shell 都应该被设置为 /sbin/nologin,在添加系统用户时可以useradd -s /sbin/nologin 用户名,这样添加的用户名就没有了shell,只能收发信而不能登陆到服务器运行其他程序,安全一点。

FAQ:
1.怎么收发信啊?
&^%@#$%,我晕,useradd 用户名啊,需要这样添加了系统用户才可以收发信
2.为什么没有设定foxmail中的smtp服务器需要验证,也可以发送E-mail?
嘿嘿,要用OUTLOOK来测试,Foxmail似乎可以自动地进行smtp认证,我也发现这个问题。OUTLOOK在smtp服务器验证失败后,有拒绝提示

推荐阅读
author-avatar
书友10689978
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有