热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

FreeBSD系统中sendmailsmtp的认证配置方法

因配置邮件发送服务器需要,开始配置sendmail,其中自然就涉及到SMTP认证的配置。FreeBSD系统本身已经安装了sendmail,不过因需要SMTP认证功能,所以一切都要重新配置。其实整个配置过程到也不是很复杂,基本上按照FreeBSD的配置手册上做就可以。详见

因配置邮件发送服务器需要,开始配置sendmail,其中自然就涉及到 SMTP认证的配置。

FreeBSD系统本身已经安装了sendmail,不过因 需要SMTP认证功能,所以一切都要重新配置。

其实整个配置过程到也不是很复杂,基本上按照 FreeBSD的配置手册上做就可以。

详见:http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/smtp-auth.html

不过其中有几个需要特别注意的地方:

1、因为我的需求没有太多用户需要管理,也不想邮件用户和系统用户混在一起,所以我采用的事默认的 Berkeley DB 来存储用户信息,这里如果按照默认的配置就无法实现用户的验证(此问题花了半天的时间才搞定)。

     需要修改saslauthd 的启动脚本 /usr/local/etc/rc.d/saslauthd

     将 saslauthd_flags=${saslauthd_flags:-"-a pms"} 改为 saslauthd_flags=${saslauthd_flags:-"-a sasldb"}

这样 saslauthd 才会使用 /usr/local/etc/sasldb2.db 的用户信息文件来验证用户登录。

2、因为需要重新make sendmail 时需要修改 /etc/make.conf 文件

    这里我也碰到一个问题:重新make出来的 sendmail 启动时无法加载 SASL2,

   Warning: Option: AuthMechanisms requires SASL support (-DSASL)

尝试多次后均没有解决问题。最后试着把 /etc/make.conf 文件中的其他配置项全部删除后重新make,终于启动成功。

附上我的最后make成功的 make.conf 文件内容(与上面的配置文档不太一样,应该都可以)

PERL_VERSION=5.10.1
SENDMAIL_CFLAGS+=   -I/usr/local/include -DSASL=2
SENDMAIL_LDFLAGS+=  -L/usr/local/lib
SENDMAIL_LDADD+=    -lsasl2

另:重新编译生成的 sendmail 文件的目录在 /usr/libexec/sendmail/ 下。

如果使用原来的路径文件还是会报上面的错误。

可直接修改 sendmail 启动脚本  /etc/rc.d/sendmail

将 command=${sendmail_program:-/usr/sbin/${name}}  修改为:

command=${sendmail_program:-/usr/libexec/sendmail/${name}}

3、最后一个问题就是 /etc/mail/freebsd.mc 文件

我最后使用的事在该配置文件的后面加上

dnl set SASL options
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 EXTERNAL LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 EXTERNAL LOGIN PLAIN')dnl

因为文档中所提供的认证方式没有包含我们正在使用的认证方式,其实其他的两个认证方式 DIGEST-MD5 CRAM-MD5 也可以去掉。留给大家自己去尝试吧。

4、 对于不用验证就可以发送邮件的配置

修改 /etc/mail/access

添加:

Connect:10.0                    RELAY

注:在8.1 版本中使用  Connect:10.0                    OK 配置实测无效

生成db文件

makemap hash /etc/mail/access.db

重启 sendmail 服务。

本次配置sendmail花了我一天的时间,在网上查阅相关文档无数,但真正有帮助的却很少,可能个人遇到的问题也都不经相同吧。

其实现在想想真正有帮助的还是安装包里带有的README以及man帮助啦!

也希望本文对碰到相同问题的同行有所帮助!


推荐阅读
  • 深入解析BookKeeper的设计与应用场景
    本文介绍了由Yahoo在2009年开发并于2011年开源的BookKeeper技术。BookKeeper是一种高效且可靠的日志流存储解决方案,广泛应用于需要高性能和强数据持久性的场景。 ... [详细]
  • 使用LVS与ldirectord实现高可用负载均衡
    本文介绍了如何通过LVS(Linux Virtual Server)结合ldirectord工具来实现服务器的健康检查及负载均衡功能。环境设置包括一个LVS节点和两个真实服务器节点,通过配置ldirectord进行健康状态监测,确保系统的高可用性。 ... [详细]
  • 本文详细介绍了在腾讯云服务器上配置 phpMyAdmin 的方法,包括安装、配置和解决常见问题。通过这些步骤,您可以轻松地在腾讯云环境中部署并使用 phpMyAdmin。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • Nature Microbiology: 人类肠道古菌基因组目录
    本研究揭示了人类肠道微生物群落中古细菌的多样性,分析了来自24个国家、农村和城市人群的1,167个非冗余古细菌基因组。研究鉴定了多个新分类群,并探讨了古菌对宿主的适应性及其与社会人口特征的关系。 ... [详细]
  • 深入解析ESFramework中的AgileTcp组件
    本文详细介绍了ESFramework框架中AgileTcp组件的设计与实现。AgileTcp是ESFramework提供的ITcp接口的高效实现,旨在优化TCP通信的性能和结构清晰度。 ... [详细]
  • 本文详细介绍了如何正确配置Java环境变量PATH,以确保JDK安装完成后能够正常运行。文章不仅涵盖了基本的环境变量设置步骤,还提供了针对不同操作系统下的具体操作指南。 ... [详细]
  • 本文将详细介绍通过CAS(Central Authentication Service)实现单点登录的原理和步骤。CAS由耶鲁大学开发,旨在为多应用系统提供统一的身份认证服务。文中不仅涵盖了CAS的基本架构,还提供了具体的配置实例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 请看|间隔时间_Postgresql 主从复制 ... [详细]
  • 本文档旨在帮助开发者回顾游戏开发中的人工智能技术,涵盖移动算法、群聚行为、路径规划、脚本AI、有限状态机、模糊逻辑、规则式AI、概率论与贝叶斯技术、神经网络及遗传算法等内容。 ... [详细]
  • Git支持通过自定义钩子来扩展其功能,这些钩子根据触发条件的不同,可以分为客户端和服务器端两种类型。客户端钩子通常与本地操作相关联,如提交代码或合并分支;而服务器端钩子则与远程仓库的交互有关。 ... [详细]
  • 在使用 iOS 应用时,遇到网络请求错误是常见的问题。本文将探讨两种常见的错误代码 -1003 和 -1001,并提供详细的解释和解决方案。 ... [详细]
  • Nginx基础:与Tomcat(JSP)和Perl的集成应用
    本文探讨了如何将Nginx与Tomcat(用于JSP)及Perl进行有效集成,提供了详细的配置方法和实践建议。 ... [详细]
  • 现代软件工程开发体验:结对编程
    距现代软件工程开课已经3周,按照课程安排,在最近的9天中,我们进行了极限编程模式的体验:pairwork(结对编程,具体见链接),对象是在academicsearchmap上添加一些新特性。经过选 ... [详细]
author-avatar
mobiledu2502878013
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有