Linux下安装Postfix邮件发送配置(三)

部署DNS服务器

postfix根据域名和地址做一个MX记录,A记录,PTR记录(一般在互联网上邮件服务器都要反解,没有PTR记录会认为是垃圾邮件)

$ service iptables stop
$ chkconfig iptables on
$ setenforce 0
$ hostname mail.ywnds.com
$ echo "127.0.0.1  mail.ywnds.com" >> /etc/hosts
$ yum install bind bind-utils bind-libs

配置DNS

$ cat /etc/named.conf
options {
 listen-on port 53 { any; };
 directory       "/var/named";
 allow-query     { any; };
 recursion yes;
{
zone "ywnds.com" IN {
 type master;
 file "ywnds.com";
};
#include "/etc/named.root.key";

PS:添加和修改以上内容即可。

$ cat /var/named/ywnds.com
$TTL 1D
@       IN    SOA    ns.ywnds.com.    root.ywnds.com. (
                                       0      ; serial
                                       1D     ; refresh
                                       1H     ; retry
                                       1W     ; expire
                                       3H )   ; minimum
@       IN    NS      ns
ns      IN    A       192.168.60.10
@       IN    MX 10   smtp
smtp    IN    A       192.168.60.10
pop3    IN    A       192.168.60.10
mail    IN    A       192.168.60.10
$ service named restart
$ chkeconfig named on

postfix主配置文件添加以下内容

postfix主配置文件进行模块化了,其中:

/etc/postfix/main.cf:这个文件保存全局配置信息,所有进程都会用到,除非这些配置在 master.cf 文件中被重新设置了。

/etc/postfix/master.cf:这个文件保存了额外的进程运行时环境参数,在 main.cf 文件中定义的配置可能会被本文件的配置覆盖掉。

在配置文件中所有的参数都必须顶格写不然就会当做是上一行参数的续写。另外postfix大部分配置文件都进行默认化处理了,可以使用postconf -d进行查看。

$cat /etc/postfix/main.cf
inet_protocols = all
inet_interfaces = 192.168.60.10,127.0.0.1
myhostname = mail.ywnds.com
mydomain = ywnds.com
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8
message_size_limit = 20485760
mailbox_size_limit = 5097152000
show_user_unknown_table_name = no
bounce_queue_lifetime = 1d
maximal_queue_lifetime = 1d
home_mailbox = Maildir/
#home_mailbox = Mailbox#mailbox_command = /some/where/procmail

参数解释:

inet_protocols = all

#指定协议。

inet_interfaces = 192.168.60.10,127.0.0.1

#指定postfix系统监听的网络接口。

myhostname = mail.ywnds.com

#指定主机名。

mydomain = ywnds.com

#指定域名,默认情况下postfix将myhostname的第一部分删除而作为mydomain的值。

myorigin = $mydomain#用来自动补全本域用户,用来指明发件人所在的域名,即做发件地址伪装。

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain#这里定义了Postfix接收邮件时的收件人域名,即Postfix要接收哪些域名的邮件,不在此区域内的都算是中继邮件,如果不加$mydomain的话那么就不允许收本域内邮件。

mynetworks = 127.0.0.0/8

#根据网络地址中继,默认给你所在的整个网络中继,postfix系统根据其值来区别用户是远程的还是本地的,这里设置只给本机中继。

message_size_limit = 20485760

mailbox_size_limit = 5097152000

show_user_unknown_table_name = no

#邮件大小限制为20M,邮箱大小限制为5G。

bounce_queue_lifetime = 1d

maximal_queue_lifetime = 1d

#队列超时限制为1天。

home_mailbox = Maildir/

home_mailbox = Mailbox

# 邮箱投递方式有两种:一种是Mailbox方式,即同一个用户的所有邮件内容存储为单个文件,通常保存在/var/spool/mail/目录下文件名与用户名相同(Postfix默认使用);第二种是Maildir方式,即使用目录结构来存储用户的邮件内容每一个用户使用一个文件夹,每封邮件都作为一个独立的文件存放。Maildir方式的存取速度和效率要好一些对于管理邮件内容页更加方便。

mailbox_command = /some/where/procmail

#这里可以配置MDA使用procmail方式(postfix默认的投递代理)。

注意问题

1、在postfix的配置文件中,参数行和注释行是不能处在同一行中的;

2、任何一个参数的值都不需要加引号,否则,引号将会被当作参数值的一部分来使用;

3、每修改参数及其值后执行 postfix reload 即可令其生效;但若修改了inet_interfaces,则需重新启动postfix;

4、如果一个参数的值有多个,可以将它们放在不同的行中,只需要在其后的每个行前多置一个空格即可;postfix会把第一个字符为空格或tab的文本行视为上一行的延续;

SMTP协议发送邮件命令

Linux中Postfix邮件发送配置(三)Linux中Postfix邮件发送配置(三)

SMTP状态码:

1xx:纯信息

2xx:正确

3xx:上一步操作尚未完成,需要继续补充

4xx:暂时性错误

5xx:永久性错误

SMTP协议非常简单,简单到允许任何用户发送邮件同时也允许发送到任何用户。在发件人(MAIL FROM)哪里可以随意指定地址。但是收件人(RCPT TO)可以发给本域内用户也可以通过中继发送给其他域用户。如163或QQ邮箱。但是一般公网邮箱都是需要进行发件人域名反向解析,如果能解析就接收邮件,不能解析就丢失邮件。如果全部解析就有点太苛刻了,也可以针对部分域名进行解析。不信你可以把发件人改为[email protected]试试你的收件人还能不能收到邮件。(如果输入错误信息可以按Ctrl加退格键即可)

Postfix默认允许本机和本机所在网络的所有主机都允许中继,所以可以发给其他域邮件。但是由于我们上面是用来了指令“mynetworks = 127.0.0.0/8”表示只给本机中继。所以其他主机是无法发送邮件给其他域的,如下图:

Linux中Postfix邮件发送配置(三)Linux中Postfix邮件发送配置(三)

注意:127.0.0.1跟192.168.60.10虽然都能访问本机,但它们两的意义不同,127.0.0.1是在本机内部,而192.168.60.10是通过网卡的。另外查看邮件服务器的日志信息在/var/log/maillog

创建两个邮箱测试用户并给密码(密码也同用户名)

$ useradd -s /sbin/nologin openstack
$ useradd -s /sbin/nologin hadoop

邮件别名

邮件别名可以把发送给一个用户的邮件转给另外一个用户,可以在/etc/aliases文件中可以定义用户别名格式如下:

Openstack:  root

表示所有发给Openstack用户的邮件,都发送给root用户。但是Postfix不会使用这个文件因为在文本文件中检索太慢了,所以需要通过hash编码转换为另外一种格式/etc/aliases.db(postfix支持hash格式),而newaliases命令就可以进行它们之间的相互转码的,直接执行命令newaliases即可。

邮件队列

Postfix 维护两个队列:未决邮件队列(pending mails queue)和等待邮件队列(deferred mail queue)。等待队列包含了暂时发送失败、需要重新发送的邮件,Postfix 会定期重发(默认5分钟,可自定义设置)。

其实 Postfix 维护5个队列:

输入队列,邮件进入Postfix系统的第一站;

活动队列,qmgr 将输入队列的邮件移到活动队列;

等待队列,保存暂时不能发送出去的邮件;

故障队列,保存受损或无法解读的邮件;

保留队列,将邮件无限期留在 Postfix 队列系统中;

列出邮件队列

$ postqueue -p
删除所有队列邮件

$ postsuper -d ALL deferred
删除所有邮件

stsuper -d ALL

PS:发送一份邮件一般也可使用tail /var/log/maillog查看邮件队列日志信息,如“status=sent”表示邮件发送成功,而“status=deferred”表示邮件在等待队列。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/212265.html<

(0)
运维的头像运维
上一篇2025-04-10 19:04
下一篇 2025-04-10 19:05

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注