GVKun编程网logo

CentOS6.5_64位系统下安装配置postfix邮件系统 启用并配置SMTP虚拟账户

9

在这里,我们将给大家分享关于CentOS6.5_64位系统下安装配置postfix邮件系统启用并配置SMTP虚拟账户的知识,同时也会涉及到如何更有效地64位CentOS系统下安装配置伪分布式hadoo

在这里,我们将给大家分享关于CentOS6.5_64位系统下安装配置postfix邮件系统 启用并配置SMTP虚拟账户的知识,同时也会涉及到如何更有效地64位CentOS系统下安装配置伪分布式hadoop 2.5.2、CentOS 6.7系统下安装配置JDK的方法、Centos 7.1搭建postfix 邮件系统、CentOS 7.3 配置postfix并发送邮件的内容。

本文目录一览:

CentOS6.5_64位系统下安装配置postfix邮件系统 启用并配置SMTP虚拟账户

CentOS6.5_64位系统下安装配置postfix邮件系统 启用并配置SMTP虚拟账户

一、前言

继写下《PHP下利用PHPMailer配合QQ邮箱下的域名邮箱发送邮件》一文已有一年之久,随着时间的流逝,此文中的一些解决方案逐渐暴露出了一个限制性问题,也就是通过smtp连接QQ邮箱下的域名邮箱发送邮件会有频率限制,而在实际应用中需要向用户发送验证邮件的时间段并不是均衡分布的,这就会导致某些高峰期通过上述方案发送邮件是会失败的。用户对服务可用性是零容忍的,比如前两天的携程全线宕机。

安装postfix邮件系统的目的不同,其配置方案也会不同,网上已有的配置postfix邮件系统大多并未明确其目的,或照搬转载,原始文章中的一些笔误也导致了很多错误内容大范围的传播并误导后来者。当然我也只是一只菜鸟,但本着实践之出真知的态度,鄙人会尽可能的完善一些基础性的内容,并用最通俗易懂的语言来解释;虽然通俗会显得不专业,但据本人的体会,很多网络上的知识看不懂或理解不了就是不够通俗、不够形象导致的。本文是基于鄙人在生产环境下搭建用于发送账户验证邮件的postfix而来。

二、配置postfix的目的

开始之前,先介绍几个枯燥的名词:

  • MUA:用户代理端,即用户使用的写信、收信客户端软件。比如:outlook、foxmail等客户端软件,乃至通过浏览器登录邮箱并发送邮件的BS架构网页也算是MUA。

  • MTA:邮件传送端,即常说的邮件服务器,用于转发、收取用户邮件。本文之中的postfix实现的就是MTA,当然postfix也是一种特殊的MUA,不再深入介绍,本文之中仅把postfix当做MTA使用。

  • MDA:邮件代理端,相当于MUA和MTA的中间人,可用于过滤垃圾邮件。

  • POP:邮局协议,当前是第三版,也就是POP3,用于MUA连接服务器收取用户邮件,通信端口110。

  • IMAP:互联网应用协议,功能与POP类似:也用于MUA连接服务器收取用户邮件;功能较POP多,通信端口143。

  • SMTP:简单邮件传送协议,MUA连接MTA或MTA连接MTA发送邮件使用此协议,通信端口25,启用ssl/tls的情况下端口为465或587。

一般发邮件的步骤流程是:

1、MUA通过POP、IMAP或SMTP协议连接MTA(称之为mta1);本文之中PHP通过PHPmailer请求发送邮件的PHP脚本就扮演了MUA的角色,而postfix就是MTA;

2、MUA发送邮件给mta1(或者说MUA通过mta1发送邮件);本文中postfix就是这个mta1;

3、mta1与其他的MTA自主沟通连接将邮件传送至指定域下的指定用户(此时mta1就扮演了MUA的角色功能,这种交互是由邮件系统软件自主实现,与用户端无关)。

本次搭建postfix目的很明确:

  • 用于PHP开发的web环境下新用户注册时发送验证码邮件---PHP下通过PHPmailer类库的smtp协议链接postfix来发送邮件。

  • web环境与postfix在同一台CentOs6.5(64位)系统下,postfix不对外提供smtp亦不转发外部MUA邮件,仅转发(或发送)web环境下(MUA)的邮件,也就是仅转发本机(或者说本域)邮件。同时也不接收其他MTA的邮件(也就是说不接受他人发过来的邮件)。

  • 本文就不介绍postfix、sasldb2、saslauthd等软件了,网上一大把。

本文配置postfix的目的通俗的讲就是:本机PHP脚本(MUA)通过smtp协议连接本机postfix(MTA),发送邮件到指定邮箱;本机postfix不转发(或发送)其他MUA的邮件,也不接收其他MTA转过来(发送过来)的邮件(也就是说本机postfix下的邮箱不接收邮件)。或这么讲:本机postfix启用smtp服务,但不对公网开放25端口;既然有smtp就会有账号和密码,postfix可以用centos系统的账户和密码,但这种方式总觉得不安全,所以启用sasldb2提供postfix的smtp虚拟账户和密码---这样即简洁也是postfix开发组推荐的方式。

三、postfix的安装

centos6.5默认自带postfix,便于说明,有些系统mail服务默认为sendmail,渣渣不理它也卸载掉,并更改服务器的mta:

  1. #1
    #开始yum安装前更换yum源建议aliyun源参考:http://blog.jjonline.cn/linux/171.html
    #备份原先的yum源信息
    mv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup
    #从阿里云镜像站下载centos6的repo
    wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-6.repo
    #最后yum重新生成缓存
    yummakecache
    
    yumremovesendmail#卸载sendmail
    yumremmovepostfix#卸载postfix
    yuminstallpostfix#重新安装postfix
    #yum安装会自动建立postfix用户组和用户名
    yuminstallcrontabs#因为卸载postfix的时候系统定时服务也被卸载核心服务也同步安装下



需要注意的是,卸载postfix会同步卸载掉定时服务crontabs,务必在卸载后重新安装。

安装sasldb、saslauthd

  1. #2
    
    yuminstallcyrus-sasl*#提供smtp的虚拟账户和密码服务
    #sasldb2包含在saslauthd当中就不要再问为什么没有安装sasldb2的shell代码了
    #当前mta查看
    alternatives--displaymta
    #设置mta
    /usr/sbin/alternatives--setmta/usr/sbin/sendmail.postfix
    #再次查看mta
    alternatives--displaymta
    #输出结果最后一行会有类似如下的提示:mta即设置完毕
    #Current`best'versionis/usr/sbin/sendmail.postfix.

postfix开机启动设置,因为采用sasldb2提供postfix的smtp账户和密码,无需saslauthd服务运行,故而saslauthd服务不用启动---看吧,使用sasldb2还减少资源占用:

#3

chckconfigpostfixon

这样postfix就安装完毕,简单吧,写详细了都显得不专业了

四、postfix配置并启用smtp

postfix配置文件在/etc/postfix目录下,主要修改的配置文件为:/etc/postfix/main.cf,配置说明详见代码段:

  1. #4
    
    vi/etc/postfix/main.cf#vi编辑postfix配置文件
    #找到如下配置项酌情修改
    ######
    myhostname=mail.jjonline.com.cn
    #postfix主机名,修改成你的域名此项需要添加A记录并指向postfix所在主机公网IP
    mydomain=jjonline.com.cn
    #域名
    myorigin=$mydomain
    #本机postfix的邮箱域名后最此项默认值使用myhostname
    #此处使用了前项mydomain也就是说本机postfix邮箱后缀为:@jjonline.com.cn
    inet_interfaces=localhost
    #指定postfix系统监听的网络接口此处必须是localhost或127.0.0.1或内网ip
    #若注释或填入公网ip服务器的25端口将对公网开放
    #默认值为all即监听所有网络接口
    #此项指定localhost后本机postfix就只能发邮件不能接收邮件
    inet_protocols=ipv4
    #网络协议ipv6在国内还不怎么普及这里ipv4即可
    mydestination=$myhostname,localhost.$mydomain,localhost
    #指定postfix接收邮件时收件人的域名,换句话说,也就是你的postfix系统要接收什么样的邮件。
    #此项配置中$myhostname表示postfix接受@$myhostname为后缀的邮箱的邮件逗号分割支持指多项
    #此项默认值使用myhostname
    local_recipient_maps=
    #此项制定接收邮件的规则可以是hash文件此项对本次配置无意义可以直接注释
    mynetworks=42.121.107.189,10.200.9.xxx,127.0.0.1
    #指定你所在的网络的网络地址
    #鄙人生产服务器公网IP42.121.107.189、内网ip10.200.9.xxx(第四位做了隐藏)、以及localhost的ip127.0.0.1
    #请依据实际情况修改
    smtpd_banner=JJonline.CnesMTPServer
    #指定MUA通过smtp连接postfix时返回的header头信息
    #原始配置附带有postfix版本号去掉即可,此项酌情处理
    #SMTPConfig
    broken_sasl_auth_clients=yes
    #指定postfix兼容MUA使用不规则的smtp协议--主要针对老版本的outlook此项对于本次配置无意义
    smtpd_client_restrictions=permit_sasl_authenticated
    #指定可以向postfix发起SMTP连接的客户端的主机名或ip地址
    #此处permit_sasl_authenticated意思是允许通过sasl认证(也就是smtp链接时通过了账号、密码效验的用户)的所有用户
    smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
    #发件人在执行RCPTTO命令时提供的地址进行限制规则此处照搬复制即可
    smtpd_sasl_auth_enable=yes
    #指定postfix使用sasl验证通俗的将就是启用smtp并要求进行账号、密码效验
    smtpd_sasl_local_domain=$mydomain
    #指定SMTP认证的本地域名本次配置可以使用smtpd_sasl_local_domain=''或干脆注释掉默认为空
    smtpd_sasl_security_options=noanonymous
    #取消smtp的匿名登录此项默认值为noanonymoussmtp若能匿名登录危害非常大此项请务必指定为noanonymous
    message_size_limit=5242880
    #指定通过postfix发送邮件的体积大小此处表示5M
    ######


查看postfix配置文件的所有配置项:

#5

postconf#不带任何命令参数即可输出所有postfix配置项以及默认值

五、sasldb2建立smtp用户和密码

某种意义上来讲:smtp的账户密码建立也就是建立邮箱账户(类似jjonline@jjonline.cn的邮箱地址)。

#6
#配置postfix启用sasldb2作为smtp的账号秘密效验方式
#编辑通过sasl启用smtp账号密码效验的配置
vi/etc/sasl2/smtpd.conf#vi写入或编辑内容如下:
#####
pwcheck_method:auxprop
auxprop_plugin:sasldb
mech_list:plainloginCRAM-MD5DIGEST-MD5
#####
#这里需要注意的是:这个配置文件的位置是64位机器上的,32位机器应该在:/usr/lib/sasl2/smtpd.conf

#创建smtp账号
saslpasswd2-c-u`postconf-hmydomain`test#回车会要求输入密码,连续两次
#表示创建test@$mydomain的邮箱账号(也是smtp的账号)和密码
#本例就是创建test@jjonline.com.cn账号和密码
#此处注意的是smtp登录用的账号并不是单纯的用户名而是整个邮箱地址字符串
#假设此处设置的smtp账号test@jjonline.com.cn密码为test123下方测试时要用到

#查看sasldb2的用户和密码
sasldblistusers2
#此命令进用户查看sasldb的用户情况
#此命令回车后会输出诸如这样的内容:test@jjonline.com.cn:userPassword

#每次添加smtp用户完毕之后需重启postfix或reload

测试postfix配置文件并启动postfix

  1. #7
    
    #测试postfix配置文件
    servicepostfixcheck
    #没有问题的话会返回着色[ok]字样
    #启动postfix
    servicepostfixstart
    #设置postfix开机启动
    chkconfigpostfixon
    #更改sasldb2数据的权限,让postfix可以读取
    chmod755/etc/sasldb2


六、测试smtp

直接本机telnet,上述添加的test@jjonline.com.cn账号和test123密码需要base64编码,编码后的字符串为:

  • test@jjonline.com.cn为:dGVzdEBqam9ubgluZS5jb20uY24=

  • test123为:dGVzdDEyMw==

telnet测试时需要用到,base64编码太简单就不多做解释,例如PHP的函数base64_encode()

  1. #8
    
    #若没安装telnet需安装telnet
    yuminstalltelnet
    
    #telnet测试smtp连接postfix
    telnet127.0.0.125#回车后会显示由$smtpd_banner配置的欢迎信息
    EHLOjjonline#输入ehlo消息头进行握手消息返回后继续
    AUTHLOGIN#要求进行smtp账号密码效验返回后输入test@jjonline.com.cn的base64编码
    dGVzdEBqam9ubgluZS5jb20uY24=#返回后输入test123密码也是base64编码
    dGVzdDEyMw==#回车后就会显示smtp效验成功接下来还可以测试发送邮件功能本文就不再做示例了
    
    #注意要退出telnet输入quit回车即可

自此,自建postfix并启用smtp和smtp的虚拟账号完成;以上所有过程鄙人均亲自试验。当然还有许多关于postfix的配置并未列出或说明,这些将在以后鄙人遇到之后再行讲解。

七、域名解析记录设置

postfix配置完毕,想要通过这台postfis邮件服务器发送的邮件被其他邮箱服务商所接受,还需要做A记录、txt记录还mx记录,请适配你自己的域名和ip地址。截图如下:

参考资料:

  • http://www.postfix.org/documentation.html

  • http://www.sunjianhe.com/?p=659

  • http://blog.csdn.net/zhangxinrun/article/details/5725235

  • http://blog.csdn.net/ikscher/article/details/9084313

  • http://www.cnblogs.com/rootq/articles/1320266.html


转自:http://blog.jjonline.cn/linux/185.html

64位CentOS系统下安装配置伪分布式hadoop 2.5.2

64位CentOS系统下安装配置伪分布式hadoop 2.5.2

安装完之后进行配置,首先所有的配置文件从上一版本的hadoop/conf换成了hadoop/etc/hadoop,在hadoop安装目录下,修改 etc/hadoop/core-site.xml,将其配置为: configuration property namehadoop.tmp.dir/name value/usr/hadoop/tmp/value descriptionA ba

安装完之后进行配置,首先所有的配置文件从上一版本的hadoop/conf换成了hadoop/etc/hadoop,在hadoop安装目录下,修改 etc/hadoop/core-site.xml,将其配置为:


 

      hadoop.tmp.dir

      /usr/hadoop/tmp

      A base for other temporary directories.

 

 

      fs.defaultFS

      hdfs://你的ip:9000

 

然后执行修改etc/hadoop/hdfs-site.xml进行第二项配置:

   

        dfs.namenode.name.dir

        /usr/hadoop/hdfs/name

   

   

        dfs.datanode.data.dir

        /usr/hadoop/hdfs/data

   

   

        dfs.replication

        1

   

请注意上述路径都需要自己手动用mkdir创建,具体位置也可以自己选择,其中dfs.replication的值建议配置为与分布式 cluster 中实际的 DataNode 主机数一致,在这里由于是伪分布式环境所以设置其为1。

接下来修改 etc/hadoop/mapred-site.xml配置其使用 Yarn 框架执行 map-reduce 处理程序,内容如下: 
  
   
  mapreduce.framework.name 
  Yarn 
 
 
 


最后修改 etc/hadoop/yarn-site.xml对yarn进行配置,其内容如下:


   

 

    Yarn.nodemanager.aux-services

    mapreduce.shuffle 

       

 

    The address of the applications manager interface in the RM.       

    Yarn.resourcemanager.address         

    你的ip:18040           

 

 

    The address of the scheduler interface.

    Yarn.resourcemanager.scheduler.address 

    你的ip:18030   

 

 

    The address of the RM web application.

    Yarn.resourcemanager.webapp.address 

    你的ip:18088   

 

 

    The address of the resource tracker interface.

    Yarn.resourcemanager.resource-tracker.address 

    你的ip:8025   

 

然后格式化:

CentOS 6.7系统下安装配置JDK的方法

CentOS 6.7系统下安装配置JDK的方法

前言

本文是主要是记录CentOS 6.7系统下安装JDK7的过程记录,下面话不多说,来一起看看吧。

方法如下:

1、上Oracle官方下载最新的JDK安装包,为了方便安装建议下载rpm包

      http://www.oracle.com/technetwork/java/javase/downloads/index.html

2、在服务器端执行安装

sudo rpm -ivh /目录/jdk-7-linux-x64.rpm

3、设置环境变量

这里我们需要找到profile文件,添加环境变量:

#vim /etc/profile

在profile文件下面追加写入下面信息:

export JAVA_HOME=/usr/java/jdk1.7.0
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

保存退出,执行:

#source /etc/profile

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

您可能感兴趣的文章:
  • centos查找已安装的jdk路径的方法
  • CentOS 7快速安装jdk
  • Linux centos7环境下jdk安装教程
  • CentOS安装jdk的三种方法
  • Centos 64位安装aapt、jdk、tomcat的详细教程
  • CentOS 下yum安装mysql、jdk和tomcat的方法
  • Centos6.5下Jdk+Tomcat+Mysql环境安装图文教程
  • 在CentOS系统上安装Java的openjdk的方法
  • CentOS 7下JDK8的详细安装步骤

Centos 7.1搭建postfix 邮件系统

Centos 7.1搭建postfix 邮件系统

学习一个服务的流程;

1、此服务器的概述:名字,功能,特点,端口号

2、安装

3、配置文件的位置

4、服务启动关闭脚本,查看端口

5、此服务的使用方法

6、修改配置文件,实战举例

7、服务的安全

8、排错(从下到上,从内到外)

9、模拟错误<对服务的原理要精通>

背景介绍;

RHEL5默认,地位已失

地位失守原因:

 第一个重要的缺点是它的安全性较差,这是因为当其作者Eric Allman最初开始写作这个软件的时候,Internet的用户还很少,因而安全性并不没有得到大家的重视。

由于邮件系统需要处理的是外部发送来的各种各样的信息,甚至包含一些恶意数据,然而sendmail在大多数系统中都是以root身份运行,一旦出现问题,就会对系统安全造成严重影响。在这种情况下,要防止出现安全问题,仅仅依赖程序本身是不可取的,应该从系统结构出发,使程序拥有的特殊权限限制到最小。

第二个,使用Sendmail还会遇到的另一个问题是它的设置相当复杂,对于使用缺省设置来收发电子邮件,问题并不存在。当管理员打算进行一些特殊设置,以便利用Sendmail提供的复杂邮件处理能力时,就不得不面对复杂的宏和正则表达式。

Qmail可以替代Sendmail

Qmail,为了解决sendmail的安全问题,整个系统结构需要重新设计。基本的原则是将系统划分为不同的模块,有负责接收外部邮件的,有管理缓冲目录中待发送的邮件队列的,有将邮件发送到远程服务器或本地用户的。Qmail就是按照这个原则进行的设计,它由多个不同功能的小程序组成,只有必要的程序才是setuid程序(即以root用户权限执行),这样就减少了安全隐患,并且由于这些程序都比较简单一些,因此就可以达到较高的安全性。Qmail已经许多年没有更新了,用户已经习惯于通过第三方的插件及补丁来使qmail增加新的功能.

postfix 介绍:

另一种替换软件:Postfix 可以替代sendmail
postfix同样也是采用了模块化的方式,但与Qmail不同的是,Postfix使用了一个主控进程进行监控。Postfix在很多方面都考虑到了安全问题,它甚至不向root分发电子邮件,以避免以root身份读写文件或启动外部程序。考虑到它的作者Wietse Venema曾编写了著名的安全软件TcpWrapper,Postfix的安全性是非常值得信赖的。

Postfix的性能也非常不错,甚至在Qmail作者自己进行的测试中也表明,Postfix的性能和Qmail基本相当。postfix在性能上大约比sendmail快三倍

官网:http://www.postfix.org/

logo

作者:Wietse Venema

作者介绍:http://www.porcupine.org/wietse/

前面我们说的都是邮件发送服务器

接下来我们看看邮件接收服务器

Dovecot:邮件接收服务器:

Dovecot是一个开源的 IMAP 和 POP3 邮件服务器,支持 Linux/Unix 系统。

POP / IMAP4是 MUA 从邮件服务器中读取邮件时使用的协议。

POP3是从邮件服务器中下载邮件存起来,IMAP 则是将邮件留在服务器端直接对邮件进行管理、操作。比POP3更先进。

由 Timo Sirainen 开发,最初发布于 2002年7月。作者将安全性考虑在第一,所以 Dovecot 在安全性方面比较出众。

IMAP4是TCP/IP协议族中的一员,现在的版本是“IMAP第四版第一次修订版”。

一个完整的邮件服务器由以下内容构成:

postfix(作为发送邮件服务器)+dovecot(作为接收邮件服务器)+MysqL(作为数据库)

25端口:SMTP协议。 发送邮件

是本地邮件传输协议,与SMTP类似,但不支持邮件队列(queue),主要应用于非广域网的邮件网关。

110端口:POP3协议

是本地邮件传输协议,与SMTP类似,但不支持邮件队列(queue),主要应用于非广域网的邮件网关。

143:IMAP

IMAP: (InternetMail Access Protocol Internet邮件访问协议) 。IMAP是斯坦福大学在1986年开发的一种邮件获取协议。它的主要作用是邮件客户端(例如Outlook)可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。

当前的权威定义是RFC3501。IMAP协议运行在TCP/IP协议之上,使用的端口是143。它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。两者之前的区别

POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的 。

而IMAP提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。

邮件功能组件

MUA:邮件用户代理(Mail User Agent) 收邮件

MTA:邮件传输代理(Mail Transfer Agent) 发邮件

rhel5默认采用sendmail做为MTA,rhel6则采用postfix

MDA:邮件递送代理(Mail Delivery Agent)


名称

全名

基于协议

作用

常见软件

MUA

Mail User Agent用户邮件代理

替用户收发邮件的

Outlook Foxmail Thunderbird mutt

MTA

Mail Transfer Agent邮件传输代理

SMTP

服务器中接受邮件

Sendmail qmail postfix(IBM) exchange

MDA

Mail Deliver Agent邮件投递代理

把SMTP收到的邮件投递的用户邮箱

Procmail maildrop

MRA

Mail Retrival Agent邮件检索代理

POP3/IMAP

帮用户去邮箱取邮件

dovecot courier-imap cyrus-imap

工作原理图

Centos 7.1搭建postfix 邮件系统

搭建postfx服务端

[root@post-test ~]# hostname
postfix-server
[root@postfix-server ~]# rpm -qa |grep sendmail
[root@postfix-server ~]# yum remove sendmail -y

[root@postfix-server ~]# alternatives --config mta

共有 1 个提供“mta”的程序。

选项 命令
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.postfix

按 Enter 保留当前选项[+],或者键入选项编号: #如果有多个输入数字进行选择

[root@postfix-server ~]alternatives --display mta#查看所有详细的版本

[root@postfix-server ~]#yuminstall postfix –y# postfix服务的主程序包,服务器端必须安装该

[root@postfix-server ~]#yuminstall dovecot –y#接收邮件软件包。 安装在服务端用于测试收邮件。 安装客端用于收邮件。

[root@postfix-server ~] #vim /etc/postfix/main.cf

[root@postfix-server ~] # vim/var/log/maillog

[root@postfix-server ~]#service postfix start

[root@postfix-server ~]#lsof -i :25

COMMAND PID USERFD TYPE DEVICE SIZE/OFF NODENAME

master 2336 root12u IPv4 132160t0 TCP localhost:smtp (LISTEN)

master 2336 root13u IPv6 132180t0 TCP localhost:smtp (LISTEN)

服务的使用方法:

linux:

发送:

[root@postfix-server ~]# mail -s 'Postfix'1684067131@qq.com < /etc/passwd

-s:指定邮件主题名

接收:

mail

windows:

通过浏览器访问或 foxmail


案例一;

配置postfix邮件服务器,实现邮件发送功能。实现给邮箱:1684067131@qq.com 发送邮件。

1)修改主机名和对应关系:

[root@postfix-server~]# hostname

xuegod63.cn

[root@postfix-server ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
postfix-server 172.16.1.201

2.修改postfix服务配置文件

[root@postfix-server ~]#vim /etc/postfix/main.cf

queue_directory= /var/spool/postfix#队列目录,也是运行的根目录

mydomain =postfix-server#指定邮件域,接收用来识别的

myhostname= postfix-server#发送邮件的主机名

mynetworks= 192.168.1.0/24,127.0.0.0/8#指定允许使用的ip地址段

myorigin =$mydomain#发信地址,此设置显示为@postfix-server

inet_interfaces= all#对外提供MTA服务设置为监听所有网卡,默认只监听本地

#inet_interfaces= localhost #注释掉,这个是只监听本地的

mydestination= $myhostname,localhost.$mydomain,localhost,$mydomain

mynetworks_style= subnet #允许转发的来源网段,可选subnet子网,class网段,host本机

local_recipient_maps=//209行,把前面的注释拿掉

relay_domains= $mydestination#允许转发的目标域

alias_maps= hash:/etc/aliases#对某个用户发,文件中的用户都可以收到邮件

alias_database= hash:/etc/aliases

smtpd_banner= $myhostname ESMTP "postfix mail server"#自定服务器信息


3.启动postfix服务;

[root@postfix-server ~]#servicepostfix restart

1)测试给123456789@qq.com发送邮件:

[root@xuegod63 ~]# mail -s 'Postfix'123456789@qq.com< /etc/postfix/main.cf

由于要经过很多域名解析发送中转,所以会有些延迟

-s:邮件主题

#

[root@postfix-server ~]#mail

HeirloomMail version 12.4 7/29/08. Type ? forhelp.

"/var/spool/mail/root":12 messages 1 new 2 unread

>N 12 Mail Delivery System Sun Nov 29 21:14 752/29445 "UndeliveredMail Returned to S"

&

没有发送出去,经验证是网络ip的问题

http://www.anti-spam.org.cn/反垃圾邮件联盟,看看你的ip是否被拉入黑名单

用别的地方的一台机器,一样的配置文件,可以发送

[root@postfix~]# mail -s 'Postfix' 123567890@qq.com </etc/postfix/main.cf

Centos 7.1搭建postfix 邮件系统

1.我们怎样才能让我们的邮件服务器给别人发送邮件不显示垃圾邮件?

需要为邮件服务器添加DNS解析

虽然不加DNS解析也能把邮件发出去,但会被大多数邮件服务器当作垃圾邮件。根据我们的实际经验,需要添加三条DNS解析记录:A记录、MX记录、TXT记录比如域名cnblogs.info,对应的DNS记录如下

Centos 7.1搭建postfix 邮件系统

例2:配置postfix给一个人发送邮件多个人可以收到

需求:

我们先创建2个用户,创建一个组HA,当我们给HA送邮件的时候,alice和bob两个用户可以收到邮件

别名功能

1)添加测试用户:

[root@postfix-server ~]# groupadd HA

[root@postfxi-server ~]# useradd alice

[root@postfix-server ~]# echo "123456" | passwd --stdinalice

[root@postfix-server ~]# useradd bob

[root@postfix-server~]# echo "123456" | passwd --stdin bob

[root@postfix-server~]# vim /etc/aliases

HA: alice,bob

[root@postfix-server ~]# service postfixrestart

3)发送测试邮件:

[root@postfix-server ~]# mail HA

Subject: Test

This is a Test-mail

lllloo

kllll

lll

EOT按ctrl-D结束输入

4)切换用户查看:

[root@postfix-server ~]# su - alice

[alice@postfix-server ~]$ mail

配置dovecot服务器,实现发邮件和接收邮件

  • 修改dovecot配置文件:

[root@postfix-server ~]# vim /etc/dovecot/dovecot.conf

protocols = imap pop3 lmtp#启用,lmtp被淘汰的地步。可能不被支持,不用就删掉

login_trusted_networks = 192.168.1.0/24//指定允许登录的网段地址

或login_trusted_networks = 0.0.0.0设置为四个零,允许所有网络

[root@postfix-server ~]# grep -v '^#' /etc/dovecot/dovecot.conf |grep-v '^$' |grep -v '#'

protocols= imap pop3 lmtp

login_trusted_networks= 192.168.1.0/24

dict {

}

!includeconf.d/*.conf

  • 设置邮件存放目录:

[root@postfix-server~]# vim/etc/dovecot/conf.d/10-mail.conf

mail_location = mBox:~/mail:INBox=/var/mail/%u#指定邮件的位置

  • 重启dovecot服务

[root@postfix ~]# service dovecot restart

  • 修改创建用户模板文件,使用户创建时自动生成mail存放目录

[root@postfix ~]# vim /etc/skel/.bash_profile

if[ ! -d ~/mail/.imap/INBox ] ; then

mkdir -p ~/mail/.imap/INBox

fi

[root@postfix-server ~]# source .bash_profile

5)测试:

先创建用户

[root@postfix-server~]# useradd alice

[root@postfix-server~]# echo alice:123456 |chpasswd

[root@postfix-server~]# useradd bob

[root@postfix ~]# echobob:123456 |chpasswd

测试发邮件

测试发邮件:

mail发邮件三种用法

1:以文件中的内容为邮件内容发信

[root@postfix-server ~]# su - alice

[alice@postfix-server ~]$ mail -s'Posfix1' bob@postfix-server < /etc/hosts

2:手动输入内容作为发送内容

[alice@postfix-server ~]$ echo"2222222222" | mail -s 'Postfix2' bob@postfix-server

3:手动输入一串作为发送内容

[alice@postfix-server~]$ mail -s 'Postfix3' bob@postfix-server

yyyuuu

hhhhhkkk

jjjnnnn

EOT

通过mail命令查看邮件:

[root@postfix-server~]# su - bob

[bob@postfix-serve~]$ mail

&#mail命令的提示符为 &

& 1#输入数字1,查看第一封邮件

& h#查看邮件列表

& l #查看所有支持的命令

& d 2#删除第二个邮件; d 2-4 删除第2-4的邮件

&?#查看 所有用法。

CentOS 7.3 配置postfix并发送邮件

CentOS 7.3 配置postfix并发送邮件

查看系统版本
[root@Nginx01 ~]# uname -nrm
Nginx01 3.10.0-514.el7.x86_64 x86_64
[root@Nginx01 ~]# uname -a
Linux Nginx01 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@Nginx01 ~]#

安装postfix作为邮件MAT
[root@Nginx01 ~]# yum install postfix

安装mailx作为发送邮件客户端
[root@Nginx01 ~]# yum install mailx

检查是否安装成功
[root@Nginx01 ~]# rpm -qa | grep -E 'postfix|mailx'
mailx-12.5-16.el7.x86_64
postfix-2.10.1-6.el7.x86_64
[root@Nginx01 ~]#

检查上述postfix和mailx安装了那些文件

[root@Nginx01 ~]# rpm -ql postfix
/etc/pam.d/smtp
/etc/pam.d/smtp.postfix
/etc/postfix
/etc/postfix/access
/etc/postfix/canonical
/etc/postfix/generic
/etc/postfix/header_checks
/etc/postfix/main.cf
/etc/postfix/master.cf
/etc/postfix/relocated
/etc/postfix/transport
/etc/postfix/virtual
/etc/sasl2/smtpd.conf
/usr/bin/mailq
/usr/bin/mailq.postfix
/usr/bin/newaliases
/usr/bin/newaliases.postfix
/usr/bin/rmail
/usr/bin/rmail.postfix
/usr/lib/sendmail
/usr/lib/sendmail.postfix
/usr/lib/systemd/system/postfix.service
/usr/libexec/postfix
/usr/libexec/postfix/aliasesdb
/usr/libexec/postfix/anvil
/usr/libexec/postfix/bounce
/usr/libexec/postfix/chroot-update
/usr/libexec/postfix/cleanup
/usr/libexec/postfix/discard
/usr/libexec/postfix/dnsblog
/usr/libexec/postfix/error
/usr/libexec/postfix/flush
/usr/libexec/postfix/lmtp
/usr/libexec/postfix/local
/usr/libexec/postfix/main.cf
/usr/libexec/postfix/master
/usr/libexec/postfix/master.cf
/usr/libexec/postfix/nqmgr
/usr/libexec/postfix/oqmgr
/usr/libexec/postfix/pickup
/usr/libexec/postfix/pipe
/usr/libexec/postfix/post-install
/usr/libexec/postfix/postfix-files
/usr/libexec/postfix/postfix-script
/usr/libexec/postfix/postfix-wrapper
/usr/libexec/postfix/postmulti-script
/usr/libexec/postfix/postscreen
/usr/libexec/postfix/proxymap
/usr/libexec/postfix/qmgr
/usr/libexec/postfix/qmqpd
/usr/libexec/postfix/scache
/usr/libexec/postfix/showq
/usr/libexec/postfix/smtp
/usr/libexec/postfix/smtpd
/usr/libexec/postfix/spawn
/usr/libexec/postfix/tlsmgr
/usr/libexec/postfix/tlsproxy
/usr/libexec/postfix/trivial-rewrite
/usr/libexec/postfix/verify
/usr/libexec/postfix/virtual
/usr/sbin/postalias
/usr/sbin/postcat
/usr/sbin/postconf
/usr/sbin/postdrop
/usr/sbin/postfix
/usr/sbin/postkick
/usr/sbin/postlock
/usr/sbin/postlog
/usr/sbin/postmap
/usr/sbin/postmulti
/usr/sbin/postqueue
/usr/sbin/postsuper
/usr/sbin/sendmail
/usr/sbin/sendmail.postfix
/usr/sbin/smtp-sink
/usr/sbin/smtp-source
/usr/share/doc/postfix-2.10.1
/usr/share/doc/postfix-2.10.1/COMPATIBILITY
/usr/share/doc/postfix-2.10.1/LICENSE
/usr/share/doc/postfix-2.10.1/README-Postfix-SASL-RedHat.txt
/usr/share/doc/postfix-2.10.1/README_FILES
/usr/share/doc/postfix-2.10.1/README_FILES/AAAREADME
/usr/share/doc/postfix-2.10.1/README_FILES/ADDRESS_CLASS_README
/usr/share/doc/postfix-2.10.1/README_FILES/ADDRESS_rewriting_README
/usr/share/doc/postfix-2.10.1/README_FILES/ADDRESS_VERIFICATION_README
/usr/share/doc/postfix-2.10.1/README_FILES/BACKSCATTER_README
/usr/share/doc/postfix-2.10.1/README_FILES/BASIC_CONfigURATION_README
/usr/share/doc/postfix-2.10.1/README_FILES/BUILTIN_FILTER_README
/usr/share/doc/postfix-2.10.1/README_FILES/CDB_README
/usr/share/doc/postfix-2.10.1/README_FILES/CONNECTION_CACHE_README
/usr/share/doc/postfix-2.10.1/README_FILES/CONTENT_inspection_README
/usr/share/doc/postfix-2.10.1/README_FILES/DATABASE_README
/usr/share/doc/postfix-2.10.1/README_FILES/DB_README
/usr/share/doc/postfix-2.10.1/README_FILES/DEBUG_README
/usr/share/doc/postfix-2.10.1/README_FILES/DSN_README
/usr/share/doc/postfix-2.10.1/README_FILES/ETRN_README
/usr/share/doc/postfix-2.10.1/README_FILES/FILTER_README
/usr/share/doc/postfix-2.10.1/README_FILES/INSTALL
/usr/share/doc/postfix-2.10.1/README_FILES/IPV6_README
/usr/share/doc/postfix-2.10.1/README_FILES/LDAP_README
/usr/share/doc/postfix-2.10.1/README_FILES/LINUX_README
/usr/share/doc/postfix-2.10.1/README_FILES/LOCAL_RECIPIENT_README
/usr/share/doc/postfix-2.10.1/README_FILES/MAILDROP_README
/usr/share/doc/postfix-2.10.1/README_FILES/MEMCACHE_README
/usr/share/doc/postfix-2.10.1/README_FILES/MILTER_README
/usr/share/doc/postfix-2.10.1/README_FILES/MULTI_INSTANCE_README
/usr/share/doc/postfix-2.10.1/README_FILES/MysqL_README
/usr/share/doc/postfix-2.10.1/README_FILES/NFS_README
/usr/share/doc/postfix-2.10.1/README_FILES/OVERVIEW
/usr/share/doc/postfix-2.10.1/README_FILES/PACKAGE_README
/usr/share/doc/postfix-2.10.1/README_FILES/PCRE_README
/usr/share/doc/postfix-2.10.1/README_FILES/PGsql_README
/usr/share/doc/postfix-2.10.1/README_FILES/POSTSCREEN_README
/usr/share/doc/postfix-2.10.1/README_FILES/QSHAPE_README
/usr/share/doc/postfix-2.10.1/README_FILES/RELEASE_NOTES
/usr/share/doc/postfix-2.10.1/README_FILES/RESTRICTION_CLASS_README
/usr/share/doc/postfix-2.10.1/README_FILES/SASL_README
/usr/share/doc/postfix-2.10.1/README_FILES/SCHEDULER_README
/usr/share/doc/postfix-2.10.1/README_FILES/SMTPD_ACCESS_README
/usr/share/doc/postfix-2.10.1/README_FILES/SMTPD_POLICY_README
/usr/share/doc/postfix-2.10.1/README_FILES/SMTPD_PROXY_README
/usr/share/doc/postfix-2.10.1/README_FILES/SOHO_README
/usr/share/doc/postfix-2.10.1/README_FILES/sqlITE_README
/usr/share/doc/postfix-2.10.1/README_FILES/STANDARD_CONfigURATION_README
/usr/share/doc/postfix-2.10.1/README_FILES/STRESS_README
/usr/share/doc/postfix-2.10.1/README_FILES/TLS_LEGACY_README
/usr/share/doc/postfix-2.10.1/README_FILES/TLS_README
/usr/share/doc/postfix-2.10.1/README_FILES/TUNING_README
/usr/share/doc/postfix-2.10.1/README_FILES/ULTRIX_README
/usr/share/doc/postfix-2.10.1/README_FILES/UUCP_README
/usr/share/doc/postfix-2.10.1/README_FILES/VERP_README
/usr/share/doc/postfix-2.10.1/README_FILES/VIRTUAL_README
/usr/share/doc/postfix-2.10.1/README_FILES/XCLIENT_README
/usr/share/doc/postfix-2.10.1/README_FILES/XFORWARD_README
/usr/share/doc/postfix-2.10.1/TLS_ACKNowLEDGEMENTS
/usr/share/doc/postfix-2.10.1/TLS_LICENSE
/usr/share/doc/postfix-2.10.1/bounce.cf.default
/usr/share/doc/postfix-2.10.1/examples
/usr/share/doc/postfix-2.10.1/examples/chroot-setup
/usr/share/doc/postfix-2.10.1/examples/chroot-setup/LINUX2
/usr/share/doc/postfix-2.10.1/examples/qmail-local
/usr/share/doc/postfix-2.10.1/examples/qmail-local/qmail-local.txt
/usr/share/doc/postfix-2.10.1/examples/smtpd-policy
/usr/share/doc/postfix-2.10.1/examples/smtpd-policy/README.SPF
/usr/share/doc/postfix-2.10.1/examples/smtpd-policy/greylist.pl
/usr/share/doc/postfix-2.10.1/main.cf.default
/usr/share/man/man1/mailq.1.gz
/usr/share/man/man1/mailq.postfix.1.gz
/usr/share/man/man1/newaliases.1.gz
/usr/share/man/man1/newaliases.postfix.1.gz
/usr/share/man/man1/postalias.1.gz
/usr/share/man/man1/postcat.1.gz
/usr/share/man/man1/postconf.1.gz
/usr/share/man/man1/postdrop.1.gz
/usr/share/man/man1/postfix.1.gz
/usr/share/man/man1/postkick.1.gz
/usr/share/man/man1/postlock.1.gz
/usr/share/man/man1/postlog.1.gz
/usr/share/man/man1/postmap.1.gz
/usr/share/man/man1/postmulti.1.gz
/usr/share/man/man1/postqueue.1.gz
/usr/share/man/man1/postsuper.1.gz
/usr/share/man/man1/sendmail.postfix.1.gz
/usr/share/man/man1/smtp-sink.1.gz
/usr/share/man/man1/smtp-source.1.gz
/usr/share/man/man5/access.5.gz
/usr/share/man/man5/aliases.5.gz
/usr/share/man/man5/aliases.postfix.5.gz
/usr/share/man/man5/body_checks.5.gz
/usr/share/man/man5/bounce.5.gz
/usr/share/man/man5/canonical.5.gz
/usr/share/man/man5/cidr_table.5.gz
/usr/share/man/man5/generic.5.gz
/usr/share/man/man5/header_checks.5.gz
/usr/share/man/man5/ldap_table.5.gz
/usr/share/man/man5/master.5.gz
/usr/share/man/man5/memcache_table.5.gz
/usr/share/man/man5/MysqL_table.5.gz
/usr/share/man/man5/nisplus_table.5.gz
/usr/share/man/man5/pcre_table.5.gz
/usr/share/man/man5/pgsql_table.5.gz
/usr/share/man/man5/postconf.5.gz
/usr/share/man/man5/postfix-wrapper.5.gz
/usr/share/man/man5/regexp_table.5.gz
/usr/share/man/man5/relocated.5.gz
/usr/share/man/man5/sqlite_table.5.gz
/usr/share/man/man5/tcp_table.5.gz
/usr/share/man/man5/transport.5.gz
/usr/share/man/man5/virtual.5.gz
/usr/share/man/man8/anvil.8.gz
/usr/share/man/man8/bounce.8.gz
/usr/share/man/man8/cleanup.8.gz
/usr/share/man/man8/defer.8.gz
/usr/share/man/man8/discard.8.gz
/usr/share/man/man8/dnsblog.8.gz
/usr/share/man/man8/error.8.gz
/usr/share/man/man8/flush.8.gz
/usr/share/man/man8/lmtp.8.gz
/usr/share/man/man8/local.8.gz
/usr/share/man/man8/master.8.gz
/usr/share/man/man8/oqmgr.8.gz
/usr/share/man/man8/pickup.8.gz
/usr/share/man/man8/pipe.8.gz
/usr/share/man/man8/postscreen.8.gz
/usr/share/man/man8/proxymap.8.gz
/usr/share/man/man8/qmgr.8.gz
/usr/share/man/man8/qmqpd.8.gz
/usr/share/man/man8/scache.8.gz
/usr/share/man/man8/sendmail.8.gz
/usr/share/man/man8/showq.8.gz
/usr/share/man/man8/smtp.8.gz
/usr/share/man/man8/smtpd.8.gz
/usr/share/man/man8/spawn.8.gz
/usr/share/man/man8/tlsmgr.8.gz
/usr/share/man/man8/tlsproxy.8.gz
/usr/share/man/man8/trace.8.gz
/usr/share/man/man8/trivial-rewrite.8.gz
/usr/share/man/man8/verify.8.gz
/usr/share/man/man8/virtual.8.gz
/var/lib/misc/postfix.aliasesdb-stamp
/var/lib/postfix
/var/spool/postfix
/var/spool/postfix/active
/var/spool/postfix/bounce
/var/spool/postfix/corrupt
/var/spool/postfix/defer
/var/spool/postfix/deferred
/var/spool/postfix/flush
/var/spool/postfix/hold
/var/spool/postfix/incoming
/var/spool/postfix/maildrop
/var/spool/postfix/pid
/var/spool/postfix/private
/var/spool/postfix/public
/var/spool/postfix/saved
/var/spool/postfix/trace
[root@Nginx01 ~]# rpm -ql mailx
/bin/mail
/bin/mailx
/etc/mail.rc
/usr/bin/Mail
/usr/bin/nail
/usr/share/doc/mailx-12.5
/usr/share/doc/mailx-12.5/AUTHORS
/usr/share/doc/mailx-12.5/copYING
/usr/share/doc/mailx-12.5/README
/usr/share/man/man1/Mail.1.gz
/usr/share/man/man1/mail.1.gz
/usr/share/man/man1/mailx.1.gz
/usr/share/man/man1/nail.1.gz
[root@Nginx01 ~]#

配置系统发送邮件的地址

[root@Nginx01 log]# cp -p /etc/postfix/main.cf /etc/postfix/main.cf.bk.20180504

[root@Nginx01 log]# vi /etc/postfix/main.cf

[root@Nginx01 log]# diff /etc/postfix/main.cf /etc/postfix/main.cf.bk.20180504
75c75
< myhostname = Nginx01.com

#myhostname = host.domain.tld

重启postfix
[root@Nginx01 ~]# systemctl restart postfix
[root@Nginx01 ~]# ps -ef |grep postfix
root 21998 1 0 19:15 ? 00:00:00 /usr/libexec/postfix/master -w
postfix 21999 21998 0 19:15 ? 00:00:00 pickup -l -t unix -u
postfix 22000 21998 0 19:15 ? 00:00:00 qmgr -l -t unix -u
root 22017 18319 0 19:15 pts/1 00:00:00 grep --color=auto postfix
[root@Nginx01 ~]# netstat -antup | grep 25
tcp 0 0 127.0.0.1:25 0.0.0.0: LISTEN 21998/master
tcp6 0 0 ::1:25 :::
LISTEN 21998/master
[root@Nginx01 ~]#

发送邮件测试是否成功

[root@Nginx01 ~]# echo "test4 from Nginx01" | mail -s "test4 from Nginx01" test@test.com

检查log

[root@Nginx01 log]# tail -5 maillog
May 4 18:57:06 Nginx01 postfix/pickup[18269]: 5256C1009A4E: uid=0 from=<root>
May 4 18:57:06 Nginx01 postfix/cleanup[19183]: 5256C1009A4E: message-id=<20180504105706.5256C1009A4E@Nginx01.com>
May 4 18:57:06 Nginx01 postfix/qmgr[18270]: 5256C1009A4E: from=<root@Nginx01.com>,size=449,nrcpt=1 (queue active)
May 4 18:57:11 Nginx01 postfix/smtp[19185]: 5256C1009A4E: to=<test@test.com>,relay=test.com[121.210.168.231]:25,delay=4.8,delays=0.09/0.05/0.11/4.5,dsn=2.0.0,status=sent (250 OK:has queued)
May 4 18:57:11 Nginx01 postfix/qmgr[18270]: 5256C1009A4E: removed
[root@Nginx01 log]#

可见发送成功。

关于CentOS6.5_64位系统下安装配置postfix邮件系统 启用并配置SMTP虚拟账户的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于64位CentOS系统下安装配置伪分布式hadoop 2.5.2、CentOS 6.7系统下安装配置JDK的方法、Centos 7.1搭建postfix 邮件系统、CentOS 7.3 配置postfix并发送邮件等相关知识的信息别忘了在本站进行查找喔。

本文标签: