`
xieye
  • 浏览: 838868 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

邮件服务器

 
阅读更多
转载自网上
http://www.5dmail.net/html/2010-7-22/2010722110219.htm
http://blog.csdn.net/jackxinxu2100/article/details/4511551
http://linux.vbird.org/linux_server/0380sendmail.php

================================================
备忘:
要想收到邮件,需设立用户帐号。一般是mail

總是得瞭解一下使用的協定吶!我們在寄信的時候,亦即由 MUA 將信件發送到 MTA 的過程中,以及 MTA 將信轉遞到下一個 MTA 的功能,目前絕大部分的郵件主機都是使用 SMTP ( Simple Mail Transfer Protocol ) 這個協定,port number 為 25 啦!在寄信的時候,你的 MUA 會主動的連接 MTA 的 port 25 ,然後將信經由 MTA 的 smtp 協定 ( port 25 ) 而送出去!而郵件主機 MTA 在轉遞的時候,也是經由下一部 MTA 的 port 25 來將信送出去的!所以囉,不論你是使用什麼 MUA 或 MTA 郵件架設軟體,只要大家都支援 smtp ,那麼信件就可以順利的流傳囉!

收信呢?收信則是 MUA 經由 POP ( Post Office Protocol ) 協定來連接到 MTA 的使用者 Mailbox,以讀取或者下載使用者在 Mailbox 當中的信件。,目前常用的 POP 協定為 POP3 ( Post Office Protocol version 3 ),這個協定產生的 port number 為 110 ,所以,你的 MUA 經由 MTA 的 port 110 將信件由 MTA 的 mailbox 當中將信件收到本地端的 MUA 上面供你瀏覽!

对于用php发送邮件来说,不需要任何“邮件认证机制”,由php程序来判断的。只要主机能直接发信就ok

================================================



下面开始用Postfix搭建Linux下的邮件服务器。目标服务器是RedHat Enterprise Linux 4,首先需要停止sendmail:

# /etc/init.d/sendmail stop

并从启动组里移除:

# chkconfig sendmail off




在配置邮件服务器之前,先解释几个概念。

我们通常使用Email都很容易,但是Internet的邮件系统是通过几个复杂的部分连接而成的,对于最终用户而言,我们熟悉的 Outlook,Foxmail等都是用来收信和发信的,称之为MUA:Mail User Agent,邮件用户代理。

MUA并非直接将邮件发送至收件人手中,而是通过MTA:Mail Transfer Agent,邮件传输代理代为传递,sendmail和Postfix就是扮演MTA的角色。

一封邮件从MUA发出后,可能通过一个或多个MTA传递,最终到达MDA:Mail Delivery Agent,邮件投递代理,邮件到达MDA后,就存放在某个文件或特殊的数据库里,我们将这个长期保存邮件的地方称之为邮箱。

一旦邮件到达邮箱,就原地不动了,等用户再通过MUA将其取走,就是用Outlook,Foxmail等软件收信的过程。

所以一封邮件的流程是:

发件人:MUA --发送--> MTA -> ... -> MTA -> MDA <--收取-- MUA:收件人

MUA到MTA,以及MTA到MTA之间使用的协议就是SMTP协议,而收邮件时,MUA到MDA之间使用的协议最常用的是POP3或IMAP。

需要注意的是,专业邮件服务商都有大量的机器来为用户服务,所以通常MTA和MDA并不是同一台服务器,因此,在Outlook等软件里,我们需要分别填写SMTP发送服务器的地址和POP3接收服务器的地址。

=================

添加MX记录(这里假设使用动态域名)

由于MX记录添加后,可能生效要等待一段时间(通常为数分钟或数十分钟,也可能马上生效),所以在安装配置前,我们首先为动态域名添加MX记录。添加方法也会因域名ISP的不同而不同,但大致信息如下:

mx mail.centospub.com. 10
a mail 服务器的IP地址

mail为别名,10为优先度。这个别名指向服务器的IP地址.

确认MX记录的添加是否生效的方法:



[root@sample ~]# host -t mx centospub.com



centospub.com mail is handled by 10 mail.centospub.com. ← 确认MX记录生效

====================


安装Postfix

然后,安装Postfix。

[root@sample ~]# yum -y install postfix ← 在线安装Postfix



Setting up Install Process
Setting up repositories
dag 100&percnt; |=========================| 1.1 kB 00:00
update 100&percnt; |=========================| 951 B 00:00
base 100&percnt; |=========================| 1.1 kB 00:00
addons 100&percnt; |=========================| 951 B 00:00
extras 100&percnt; |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
primary.xml.gz 100&percnt; |=========================| 28 kB 00:04
update : ################################################## 84/84
Added 84 new packages, deleted 1499 old in 3.44 seconds
primary.xml.gz 100&percnt; |=========================| 157 B 00:00
Added 0 new packages, deleted 1499 old in 1.97 seconds
primary.xml.gz 100&percnt; |=========================| 26 kB 00:00
extras : ################################################## 102/102
Added 102 new packages, deleted 1499 old in 2.73 seconds
Reducing Dag RPM Repository for Red Hat Enterprise Linux to included packages only
Finished
Parsing package install arguments
Resolving Dependencies
–> Populating transaction set with selected packages. Please wait.
—> Downloading header for postfix to pack into transaction set.
postfix-2.2.10-1.RHEL4.2. 100&percnt; |=========================| 40 kB 00:00
—> Package postfix.i386 2:2.2.10-1.RHEL4.2 set to be updated
–> Running transaction check

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
postfix i386 2:2.2.10-1.RHEL4.2 base 3.0 M

Transaction Summary
=============================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 3.0 M
Downloading Packages:
(1/1): postfix-2.2.10-1.R 100&percnt; |=========================| 3.0 MB 00:05
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: postfix ######################### [1/1]

Installed: postfix.i386 2:2.2.10-1.RHEL4.2
Complete!
配置Postfix及相关组件

[1] 对Postfix进行配置。

[root@sample ~]# vi /etc/postfix/main.cf ← 编辑Postfix的配置文件



#myhostname = host.domain.tld ← 找到此行,将等号后面的部分改写为主机名

myhostname = sample.centospub.com ← 变为此状态,设置系统的主机名

#mydomain = domain.tld ← 找到此行,将等号后面的部分改写为域名

mydomain = centospub.com ← 变为此状态,设置域名(我们将让此处设置将成为E-mail地址“@”后面的部分)

#myorigin = $mydomain ← 找到此行,将行首的#去掉

myorigin = $mydomain ← 变为此状态,将发信地址“@”后面的部分设置为域名(非系统主机名)

inet_interfaces = localhost ← 找到此行,将“localhost”改为“all”

inet_interfaces = all ← 变为此状态,接受来自所有网络的请求

mydestination = $myhostname, localhost.$mydomain, localhost ← 找到此行,在行为添加“$mydomain”

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ← 变为此状态,指定发给本地邮件的域名

#relay_domains = $mydestination ← 找到此行,将行首的#去掉

relay_domains = $mydestination ← 变为此状态,定义允许转发的域名

#mynetworks = 168.100.189.0/28, 127.0.0.0/8 ← 找到此行,依照自己的内网情况修改

mynetworks = 168.100.189.0/28, 127.0.0.0/8 ← 变为此状态,指定内网和本地的IP地址范围

#home_mailbox = Maildir/ ← 找到这一行,去掉行首的#

home_mailbox = Maildir/ ← 变为此状态,指定用户邮箱目录

# SHOW SOFTWARE VERSION OR NOT
#
# The smtpd_banner parameter specifies the text that follows the 220
# code in the SMTP server’s greeting banner. Some people like to see
# the mail version advertised. By default, Postfix shows no version.
#
# You MUST specify $myhostname at the start of the text. That is an
# RFC requirement. Postfix itself does not care.
#
#smtpd_banner = $myhostname ESMTP $mail_name
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) ← 找到这一行,接此行添加如下行:
smtpd_banner = $myhostname ESMTP unknow ← 添加这一行,不显示SMTP服务器的相关信息

在配置文件的文尾,添加如下行:

smtpd_sasl_auth_enable = yes ← 服务器使用SMTP认证
smtpd_sasl_local_domain = $myhostname ← 指定SMTP认证的本地域名(主机名)
smtpd_sasl_security_options = noanonymous ← 不允许匿名的方式认证
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_security_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination←(very important)
message_size_limit = 15728640 ← 规定邮件最大尺寸为15MB



[2] 配置SMTP认证的相关选项

为了提高安全性,我们不将系统用户的密码作为相应用户SMTP认证的密码,而将在后面为用户建立SMTP认证专用的密码。

[root@sample ~]# vi /usr/lib/sasl2/smtpd.conf ← 编辑SMTP认证的配置文件



pwcheck_method: saslauthd ← 找到此行,将“saslauthd”改为“auxprop”

pwcheck_method: auxprop ← 不使用系统用户密码作为用户的SMTP认证密码

[root@sample ~]# vi /etc/sysconfig/saslauthd

MECH=shadow ← 找到这一行,在前面加#

#MECH=shadow ← 不使用shadow机制

FLAGS= ← 找到此行,在等号后面添加“sasldb”

FLAGS=sasldb ← 定义认证方式为sasldb2



[3] 建立用户的邮箱目录

首先建立用户模板下的邮箱目录,以便于建立新用户时,相应用户的邮箱目录自动被建立。

[root@sample ~]# mkdir /etc/skel/Maildir ← 在用户模板下建立用户邮箱目录



[root@sample ~]# chmod 700 /etc/skel/Maildir ← 设置用户邮箱目录属性为700



然后再为已经存在的用户建立相应邮箱目录。

[root@sample ~]# mkdir /home/centospub/Maildir ← 为用户(这里以centospub用户为例)建立邮箱目录



[root@sample ~]# chmod 700 /home/centospub/Maildir ← 设置该用户邮箱目录属性为700

[root@sample ~]# chown centospub. /home/centospub/Maildir ← 设置该用户邮箱目录为该用户所有



[4] 为用户设置SMTP认证密码

[root@sample ~]# saslpasswd2 -u sample.centospub.com -c centospub ← 为centospub用户设置SMTP认证密码



Password: ← 在这里输入密码(不会显示)
Again (for verification): ← 再次输入密码



[5] 改变SALS的属性及归属

[root@sample ~]# chgrp postfix /etc/sasldb2 ← 将数据库归属改为postfix,



[root@sample ~]# chmod 640 /etc/sasldb2 ← 将数据库属性改为640



[6] 关闭sendmail服务及设置默认MTA

因为在用Postfix作为SMTP服务器的前提下,我们不准备再用sendmail,所以将sendmail服务关掉,以确保安全及节省系统资源。

[root@sample ~]# /etc/rc.d/init.d/sendmail stop ← 关闭sendmail服务



Shutting down sendmail:         [ OK ]
Shutting down sm-client:         [ OK ]

[root@sample ~]# chkconfig sendmail off ← 关闭sendmail自启动

[root@sample ~]# chkconfig –list sendmail ← 确认sendmail自启动已被关闭(都为off就OK)
sendmail 0:off 1:off 2:off 3:off 4:off 5:off 6:off



然后再将默认的MTA设置为Postfix。

[root@sample ~]# alternatives –config mta ← 设置默认MTA



There are 2 programs which provide ‘mta’.

Selection Command
———————————————–
*+ 1 /usr/sbin/sendmail.sendmail ← 当前状态:sendmail为默认MTA
2 /usr/sbin/sendmail.postfix

Enter to keep the current selection[+], or type selection number: 2 ← 在这里输入2,使Postfix成为默认MTA
启动相应服务

最后,启动SMTP认证及Postfix服务,并设置相应服务为自启动。

[root@sample ~]# chkconfig saslauthd on ← 将SMTP-Auth设置为自启动



[root@sample ~]# chkconfig –list saslauthd ← 确认SMTP-Auth服务状态
saslauthd 0:off 1:off 2:on 3:on 4:on 5:on 6:off ← 确认2~5为on的状态就OK

[root@sample ~]# /etc/rc.d/init.d/saslauthd start ← 启动SMTP-Auth

Starting saslauthd:           [ OK ]

[root@sample ~]# chkconfig postfix on ← 将Postfix设置为自启动

[root@sample ~]# chkconfig –list postfix ← 确认Postfix服务状态
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off ← 确认2~5为on的状态就OK

[root@sample ~]# /etc/rc.d/init.d/postfix start ← 启动Postfix

Starting postfix:            [ OK ]
分享到:
评论

相关推荐

    邮件服务器的工作原理

    邮件服务器是互联网上进行电子邮件传输的核心组件,它们使得用户能够便捷地发送、接收和存储电子邮件。邮件服务器的工作原理基于客户端-服务器模型,涉及到多种协议,包括简单邮件传输协议(SMTP)、邮局协议(POP3...

    Sendmail邮件服务器搭建

    Sendmail 邮件服务器搭建 Sendmail 邮件服务器是一种流行的开源邮件服务器软件,广泛应用于 Linux 操作系统中。在本篇文章中,我们将介绍如何搭建和配置 Sendmail 邮件服务器,包括安装 Sendmail 软件包、配置 ...

    Java开源邮件服务器james源码

    Java开源邮件服务器Apache James是基于Java技术构建的一款强大的邮件服务器软件。它的源代码开放,允许开发者深入了解其工作原理,并可根据需求进行定制化开发。Apache James 2.3.2是该项目的某个稳定版本,提供了...

    简单邮件服务器例子

    本教程将围绕"简单邮件服务器例子123"这一主题,深入讲解如何构建及运行一个基本的邮件服务器。 首先,我们需要了解邮件服务器的基本原理。邮件服务器主要遵循SMTP(Simple Mail Transfer Protocol)协议来发送邮件...

    delphi 邮件服务器源码

    《Delphi邮件服务器源码详解》 在信息技术领域,邮件服务器是互联网通信的重要组成部分,它负责接收、存储和发送电子邮件。对于开发人员来说,理解邮件服务器的工作原理并能自行构建邮件服务器是一项高级技能。本篇...

    邮件服务器Mercury的设置方法

    邮件服务器Mercury的设置方法涵盖了从基础配置到高级设置的整个过程,以下详细知识点按照步骤逐一展开。 1. 启动Apache和MySQL服务是安装和配置邮件服务器的前提条件。Apache服务器用于托管Web应用,而MySQL是一个...

    开源电子邮件服务器 iRedMail

    iRedMail 开源电子邮件服务器详解 iRedMail 是一款专为 Linux 和 BSD 操作系统设计的免费、开源的电子邮件服务器解决方案。它以其易部署、功能全面和稳定性强的特点,深受企业和个人用户的喜爱。这款软件遵循 GPL...

    Windows server 2003搭建邮件服务器

    ### Windows Server 2003 搭建邮件服务器知识点详解 #### 一、基础知识概述 - **Windows Server 2003**:是微软公司发布的一款服务器操作系统,旨在为企业提供稳定、安全、高效的网络环境。 - **邮件服务器**:是指...

    基于ApacheJames邮件服务器的收发邮件代码及服务

    Apache James邮件服务器是一款开源的、基于Java的全功能邮件服务器,它支持SMTP、POP3和IMAP协议,为企业和个人提供了一种可靠且可扩展的邮件处理解决方案。在本项目中,我们将探讨如何利用Apache James来实现邮件的...

    Linux下Postfix邮件服务器搭建

    Linux 下 Postfix 邮件服务器搭建 在 Linux 下成功搭建起 Postfix 服务器需要完成以下几个步骤:安装 Postfix、配置 main.cf 文件、添加 DNS 服务器和测试 Postfix。 一、安装 Postfix 首先,需要卸载 sendmail ...

    纯java开发邮件服务器(SMTP和POP3协议)

    Java邮件服务器开发是一个复杂但有趣的任务,涉及到网络通信和邮件协议的理解。在这个项目中,我们将主要探讨SMTP(简单邮件传输协议)和POP3(邮局协议第三版)这两种核心协议,以及如何在Java环境中实现它们以支持...

    一款免安装的邮件服务器

    【邮件服务器】是一种用于在互联网或局域网中发送和接收电子邮件的应用程序或系统。它遵循特定的协议标准,如SMTP(Simple Mail Transfer Protocol)用于发送邮件,POP3(Post Office Protocol version 3)或IMAP4...

    MDARMON Mail邮件服务器

    MDARMON Mail邮件服务器是一款专为企事业单位设计的高效、安全的邮件系统。它提供了全面的电子邮件服务,包括收发邮件、邮件过滤、反垃圾邮件、防病毒、邮件归档和管理等多种功能,旨在保障企业的通信顺畅并保护数据...

    易邮邮件服务器

    "易邮邮件服务器"是一款专为初学者设计的免费邮件服务器软件,它的主要特点是操作简便,用户友好。作为一款高效且易用的邮件系统,它提供了全面的功能来满足个人和小型企业的邮件通信需求。 首先,易邮邮件服务器的...

    delphi 完整的电子邮件服务器源码

    在您提供的资源中,“delphi 完整的电子邮件服务器源码”是一个宝贵的开发资源,它允许开发者深入了解电子邮件服务器的工作原理,并能自定义或构建自己的邮件服务器。 电子邮件服务器是互联网通信的重要组成部分,...

    遥志邮件服务器(CMailServer)+V5[1].3.3++破解版.exe

    CMailServer是标准的互联网邮件服务器软件,支持SMTP/POP3/ESMTP等标准互联网邮件服务协议,支持互联网邮件收发,支持通用的邮件客户端软件Outlook、Foxmail等收发邮件。CMailServer还提供了完善的Web Mail网页收发...

    AngelMail邮件服务器 v3.0 企业版

    《AngelMail邮件服务器 v3.0 企业版详解》 在信息化时代,高效稳定的邮件通信是企业运营不可或缺的一部分。AngelMail邮件服务器v3.0企业版正是为满足这一需求而设计的专业邮件服务解决方案。该软件以其友好的界面、...

Global site tag (gtag.js) - Google Analytics