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

Fedora6架设Sendmail邮件服务器

Fedora6架设Sendmail邮件服务器--Linux企业应用-Linux服务器应用信息,下面是详情阅读。
(解决php发邮件NObody跟域名是localhost.domain问题)
弄了差不多一个星期,基本弄懂基本的东西,架设过程中,参考网上无数文章,现做一个综合,并在重要的地方给予提醒
一:安装必要的软件
(1)查询 rpm -qa sendmail m4
有结果显示证明已经安装了必要的软件,没有显示请使用yum install sendmail 命令进行安装(可以上网的情况下)或者利用系统盘进行安装(有光盘的话,iso文件也可以)
(2)安装关联的套件
sendmail-dev, sendmai-doc sendmail-cf
推荐使用yum 安装(yum install sendmai*或者挂载光盘进行安装 rpm -ivh sendmail-*) 关于yum的使用,欢迎阅读我转载的yum基本使用:http://zm177cm.blog.163.com/blog/static/114612382007102045940710
(3)安装成功以后
vi /etc/mail/local-host-names 打开这个文件 然后在里面加入你想发邮件的时候用到的域名(可以是虚拟的,但不推荐使用现存 的,有侵权的嫌疑~ 也容易发生错误) 例如

[root@localhost named]# 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系统管理手册的解释就是delete to next lin的意思 有位仁兄解释为 do not load 看上去也正确,倒是是那个意思我就不管了,明白意思就好了)


然后m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf(重建sendmail.cf或者可以先备份,各人喜欢~~)

(5)修改用户认证

还是上面那个文件vi /etc/mail/sendmail.mc 进入到里面以后找到
48行 dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
49行 dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
#?h掉上面?尚星懊娴 dnl
#注意:TRUST_AUTH_METH、define 前面不要留有空格

112行 dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

#前面加上 dnl, 把?行?解起?恚?nl = do not load)

#或改成下面??右部梢?br />
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl

注:上面修改用户认证这一段是引用我转载的一篇文章的:

(6)修改端口

  dnl DAEMON_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@localhost named]# groupadd mailuser

[root@localhost named]# adduser -g mailuser -s /sbin/nologin mike

[root@localhost named]# adduser -g mailuser -s /sbin/nologin john

[root@localhost named]# passwd mike

[root@localhost named]# passwd john 密码由你自己喜欢 用户也随你喜欢添加几个(这一段引用另一篇转载的文章)

(8)访问控制

5,访问控制设置

更改/etc/mail/accesss文件,增加:

[root@localhost named]# cat /etc/mail/access

# Check the /usr/share/doc/sendmail/README.cf file for a description

# of the format of this file. (search for access_db in that file)

# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc

# package.

#

# by default we allow relaying from localhost...

localhost.localdomain RELAY

localhost RELAY

127.0.0.1 RELAY

ltest.com RELAY(这个就是你自己填到local-host-names里面的名字,一定要写[其实我也不肯定,不过我是写了 因为我最近时间比较紧迫,没有进行验证,希望看了的朋友帮忙验证一下])

完成后makemap hash /etc/mail/access.db
(9)重启服务
[root@localhost named]# service sendmail restart
看到
关闭 sm-client: [确定]
关闭 sendmail: [确定]
启动 sendmail: [确定]
启动 sm-client: [确定]
就正确了(后面两个是确定就可以了,因为如果服务还没有启动 的华 关闭服务会事失败的)
(10)测试服务器

[root@localhost named]# telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.localdomain (127.0.0.1).

Escape character is '^]'.

220 localhost.localdomain ESMTP Sendmail 8.13.1/8.13.1; Sat, 17 Mar 2007 12:54:47 +0800

ehlo localhost(用户输入)

250-localhost.localdomain Hello localhost.localdomain [127.0.0.1], pleased to meet you

250-ENHANCEDSTATUSCODES

250-PIPELINING

250-8BITMIME

250-SIZE

250-DSN

250-ETRN

250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN ---认证应该生效

250-DELIVERBY

250 HELP

quit(用户输入 退出telnet)

221 2.0.0 localhost.localdomain closing connection

Connection closed by foreign host.

看见这些信息就代表成功了

然后就可以使用php的邮件类(网上很多,不好意思,没办法传上来,或者有需要的话,过些时候我会把我用 的粘贴上来)在server (邮件服务器这个变量)填上"localhost" 用户邮箱(本服务器[刚弄好这个])就填刚刚添加上去的用户名+在local-host-names填上的域名就可以在收件人那里显示了(尽管可能是虚拟的)例如mike@test.com 密码就是刚刚用户的密码(这是需要验证的smtp邮件程序) port就是25 这样你就可以用你刚刚架好的这台服务器进行邮件的发送了!

希望我说得明白,如果大家有什么不明白的话 欢迎留言或者给我些email。我自己弄这个邮件服务器弄了一个多星期,可以说算是很失败的了,没办法,我基础不扎实,有被逼着帮人家做网站,只好这样边学边摸索了,网上很多文章都有说在linux里面架设服务器,但是就是没教我们怎么用服务器(可能他们觉得不用说吧!又或者只是我太笨了,呜呜呜呜) 为什么有些地方我要特别提一下呢? 因为那些地方正是使用php发送邮件显示出来的不足的地方:(1)使用mail()函数发送邮件的话,是很简单, 问题是收件人显示是nobody 这样经过上面在local-host-name以及/etc/mail/accesss 里面的设定就可以解决这个问题了!还有这样就不用利用雅虎或者其他的服务器做中转站发邮件了(虽然没问题,关于方法我有转载,有兴趣了解的欢迎浏览) 我为什么一定要把自己的电脑作服务器呢?? 呵呵 说白了 很简单 ,就是客户要求!没办法,他要怎样就怎样咯,就好像他要用ubutun做服务器一样(个人感觉不大好,不过我没有深入了解过,知道的朋友也欢迎告诉我一声,很乐意了解!)
推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
author-avatar
hanhan2502883243
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有