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

fedora系统中配置sendmail邮件服务器

安装必要的软件(1)查询rpm-qasendmailm4有结果显示证明已经安装了必要的软件,没有显示请使用yuminstallsendmail命令进行安装(可以上网的情况下)或者利用系统盘进行安装(有光盘的话,iso文件也可以)(2)安装关联的套件sendmail-dev,sendmai-do
安装必要的软件
(1)查询rpm-qa sendmail m4
有结果显示证明已经安装了必要的软件,没有显示请使用yum install sendmail命令进行安装(可以上网的情况下)或者利用系统盘进行安装(有光盘的话,iso文件也可以)
(2)安装关联的套件
sendmail-dev,sendmai-doc sendmail-cf
推荐使用yum安装(yum install sendmai*或者挂载光盘进行安装rpm-ivh sendmail-*)
(3)配置域名
vi /etc/mail/local-host-names打开这个文件然后在里面加入你想发邮件的时候用到的域名(可以是虚拟的,但不推荐使用现存的,有侵权的嫌疑~也容易发生错误)例如
[root@localhostnamed]#cat /etc/mail/local-host-names
#local-host-names-include all aliases for your machine here.
ltest.com
test.com就是你想要填的~~~
(4)重建sendmail.cf
sendmail.cf是sendmail的配置文件,通过修改sendmail.mc文件进行修改,
DaemOnPortsOptions=Port=smtp,Addr=127.0.0.1,Name=MTA更改为:
DaemOnPortsOptions=Port=smtp,Addr=yourip或者0.0.0.0,Name=MTA
或者把这一行用dnl注释掉(就是在这一行前面加入dnl然后空格dnl的意思,按照linux系统管理手册的解释就是deletetonextlin的意思有位仁兄解释为donotload看上去也正确,倒是是那个意思我就不管了,明白意思就好了)
然后m4/etc/mail/sendmail.mc>/etc/mail/sendmail.cf(重建sendmail.cf或者可以先备份,各人喜欢~~)
(5)修改用户认证
还是上面那个文件vi /etc/mail/sendmail.mc进入到里面以后找到
48行dnlTRUST_AUTH_MECH(`EXTERNALDIGEST-MD5CRAM-MD5LOGINPLAIN")dnl
49行dnldefine(`confAUTH_MECHANISMS",`EXTERNALGSSAPIDIGEST-MD5CRAM-MD5LOGINPLAIN")dnl
#?h掉上面?尚星懊娴?nl
#注意:TRUST_AUTH_METH、define前面不要留有空格
112行dnlDAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA")dnl
#前面加上dnl,把?行?解起?恚?nl=donotload)
#或改成下面??右部梢?br /> DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0,Name=MTA")dnl
注:上面修改用户认证这一段是引用我转载的一篇文章的:
(6)修改端口
  dnlDAEMON_OPTIONS(`Port=submission,Name=MSA,M=Ea")dnl
  去掉行首的注释符,并且将内容修改成Port=25:
  DAEMON_OPTIONS(`Port=25,Name=MSA")dnl
  在smtp的默认端口(25)上进行认证,而不是587端口。这样就强制所有使用该邮件服务器(就是我们现在架设的这个服务器)进行邮件转发的用户在认证后才能发邮件了。
再次运行m4程序 
 #m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
  用m4重新生成sendmail.cf文件
(7)添加邮件用户
建立用户帐号
[root@localhostnamed]#groupaddmailuser
[root@localhostnamed]#adduser-gmailuser-s/sbin/nologinmike
[root@localhostnamed]#adduser-gmailuser-s/sbin/nologinjohn
[root@localhostnamed]#passwdmike
[root@localhostnamed]#passwdjohn密码由你自己喜欢用户也随你喜欢添加几个(这一段引用另一篇转载的文章)
(8)访问控制
5,访问控制设置
更改/etc/mail/accesss文件,增加:
[root@localhostnamed]#cat/etc/mail/access
#Checkthe/usr/share/doc/sendmail/README.cffileforadescription
#oftheformatofthisfile.(searchforaccess_dbinthatfile)
#The/usr/share/doc/sendmail/README.cfispartofthesendmail-doc
#package.
#
#bydefaultweallowrelayingfromlocalhost...
localhost.localdomainRELAY
localhostRELAY
127.0.0.1RELAY
ltest.comRELAY(这个就是你自己填到local-host-names里面的名字,一定要写[其实我也不肯定,不过我是写了因为我最近时间比较紧迫,没有进行验证,希望看了的朋友帮忙验证一下])
完成后makemaphash/etc/mail/access.db (9)重启服务
[root@localhostnamed]#servicesendmailrestart
看到
关闭sm-client:[确定]
关闭sendmail:[确定]
启动sendmail:[确定]
启动sm-client:[确定]
就正确了(后面两个是确定就可以了,因为如果服务还没有启动的华关闭服务会事失败的)
(10)测试服务器
[root@localhostnamed]#telnetlocalhost25
Trying127.0.0.1...
Connectedtolocalhost.localdomain(127.0.0.1).
Escapecharacteris"^]".
220localhost.localdomainESMTPSendmail8.13.1/8.13.1;Sat,17Mar200712:54:47+0800
ehlolocalhost(用户输入)
250-localhost.localdomainHellolocalhost.localdomain[127.0.0.1],pleasedtomeetyou
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTHDIGEST-MD5CRAM-MD5LOGINPLAIN---认证应该生效
250-DELIVERBY
250HELP
quit(用户输入退出telnet)
2212.0.0localhost.localdomainclosingconnection
Connectionclosedbyforeignhost.
看见这些信息就代表成功了
然后就可以使用php的邮件类(网上很多,不好意思,没办法传上来,或者有需要的话,过些时候我会把我用的粘贴上来)在server(邮件服务器这个变量)填上"localhost"用户邮箱(本服务器[刚弄好这个])就填刚刚添加上去的用户名+在local-host-names填上的域名就可以在收件人那里显示了(尽管可能是虚拟的)例如mike@test.com密码就是刚刚用户的密码(这是需要验证的smtp邮件程序)port就是25这样你就可以用你刚刚架好的这台服务器进行邮件的发送了!

推荐阅读
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 本文通过分析一个具体的案例,探讨了64位Linux系统对32位应用程序的兼容性问题。案例涉及OpenVPN客户端在64位系统上的异常行为,通过逐步排查和代码测试,最终定位到了与TUN/TAP设备相关的系统调用兼容性问题。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • Ubuntu 14.04 系统安装后网卡名称修改方法
    本文介绍了在安装 Ubuntu 14.04 Server 版本后,如何将默认的网卡名称从非 eth 格式修改为传统的 eth 格式,并提供了详细的步骤和示例。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 在iOS开发中,基于HTTPS协议的安全网络请求实现至关重要。HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer)是一种旨在提供安全通信的HTTP扩展,通过SSL/TLS加密技术确保数据传输的安全性和隐私性。本文将详细介绍如何在iOS应用中实现安全的HTTPS网络请求,包括证书验证、SSL握手过程以及常见安全问题的解决方法。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • 如果程序使用Go语言编写并涉及单向或双向TLS认证,可能会遭受CPU拒绝服务攻击(DoS)。本文深入分析了CVE-2018-16875漏洞,探讨其成因、影响及防范措施,为开发者提供全面的安全指导。 ... [详细]
author-avatar
舞倾城2010_217
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有