基础云服务器配置和DNS配置

基础云服务器配置

笔者使用的是 'CentOS7 SELinux 7 x64' 操作系统,所以如果不太了解的话,请配置同样系统的云虚拟机。大佬自行忽略。

笔者推荐使用本机SSH服务连接到服务器,而不是用ISP提供的网页版Remote Console

基础DNS配置

在你购买的域名下,找到DNS配置界面,添加以下几条记录

  1. 指向服务器的A记录 (Value配置成你的邮件的IP地址):
TypeNameValueTTL
Aexample.comxxx.xx.xxx.x600
  1. 指向邮件服务器的A记录 (依然使用IP自制作为Value):
TypeNameValueTTL
Amail.example.comxxx.xx.xxx.x600
  1. 指向邮件服务器的MX记录:
TypeNameMail Server (Value)PriorityTTL
MXmail.example.comexample.com10600

检查防火墙设置

  1. 运行Firewall指令: firewall-cmd --list-ports。确认输出的列表中是否包含这些端口:465, 993, 995, 80. 如果没有输出的话,运行下面的指令分别打开这四个端口。没有输出哪个端口就说明哪个被防火墙阻挡,你就需要打开那个端口(将465替换为你需要的端口):
firewall-cmd --add-port=465/tcp --permanent
firewall-cmd --reload
  1. 运行IPTables指令来确认端口是否处于ACCEPT状态
iptables -nL | grep 465
iptables -nL | grep 993
iptables -nL | grep 995
iptables -nL | grep 80

设置Hosts文件

打开 /etc/hosts, 确认里面是否包含了以下两行。如果不包含或不完整,按照下面的内容修改。其中192.0.2.0是你的公共IP地址,hostname 是你的本地主机名

127.0.0.1 localhost.localdomain localhost
192.0.2.0 hostname.example.com hostname

初步安装

笔者使用Postfix作为SMTP服务器, Dovecot作为POP3和IMAP服务器, MariaDB存储用户数据

匹配版本号(大佬请忽略)

如果版本号不对导致了报错的话,或者担心新版本的配置有更新的话,可以使用和笔者一样的版本号。直接从pkgs.org下载指定版本的包,然后下面使用yum指令的时候,指定你下载的包的路径即可。大佬请自行忽略这部分!

sudo yum info postfix
sudo yum info dovecot
sudo yum info mariadb-server
sudo yum info dovecot-mysql

确认输出的版本号是否和下面的版本号匹配:

Postfix:
Version     : 2.10.1
Release     : 9.el7
 
Dovecot:
Version     : 2.2.36
Release     : 8.el7
 
MariaDB-server:
Version     : 5.5.68
Release     : 1.el7
 
dovecot-mysql:
Version     : 2.2.36
Release     : 8.el7

如果版本不匹配,但想要使用和笔者一样的版本,可以从pkgs.org直接下载指定版本的rpm包并安装。以下是四个rpm包在pkgs.org的链接:
Postfix 2.10.1: http://mirror.centos.org/centos/7/os/x86_64/Packages/postfix-2.10.1-9.el7.x86_64.rpm

Dovecot 2.2.36: http://mirror.centos.org/centos/7/os/x86_64/Packages/dovecot-2.2.36-8.el7.x86_64.rpm

dovecot-mysql 2.2.36: http://mirror.centos.org/centos/7/os/x86_64/Packages/dovecot-mysql-2.2.36-8.el7.x86_64.rpm

MariaDB-server 5.5.68: http://mirror.centos.org/centos/7/os/x86_64/Packages/mariadb-server-5.5.68-1.el7.x86_64.rpm

可以使用wget指令分别下载这四个包到指定的路径

安装必要的包

如果你没有下载包,想要直接安装,则运行以下指令

sudo yum install postfix dovecot mariadb-server dovecot-mysql

果你想要使用下载的包,可以将每一个服务替换成你的包的路径。例如:

sudo yum install /root/postfix-2.10.1-9.el7.x86_64.rpm

像这样将每一个包都替换成指向你使用wget指令下载的包的路径

安装和签发SSL证书

SSL证书有多种签发的方式,可以自行签发,也可以使用第三方机构的服务。笔者使用的是Cerbot的服务。(大佬自行忽略,不过在后面安装Postfix和Dovecot的时候记得把SSL证书的路径替换成自己的)

检查服务的版本号

检查版本号的指令:

yum info epel-release
yum info python2-certbot-nginx
yum info nginx

版本号

epel-release
Version     : 7
Release     : 14
 
python2-certbot-nginx
Version     : 1.11.0
Release     : 1.el7
 
nginx
Version     : 1.20.1
Release     : 10.el7

epel-release的下载链接:https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-14.noarch.rpm

python2-certbot-nginx的链接:https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/p/python2-certbot-nginx-1.11.0-1.el7.noarch.rpm

nginx的链接:http://mirror.centos.org/centos/7/sclo/x86_64/rh/Packages/r/rh-nginx120-nginx-1.20.1-1.el7.x86_64.rpm

安装SSL证书需要的包

首先,安装epel-release,运行以下指令 (版本配置同上):

sudo yum install epel-release

然后,安装nginx服务。运行下面的指令:

sudo yum install python2-certbot-nginx nginx

签发SSL证书

运行以下指令以签发SSL证书

sudo certbot --nginx

签发过程中cerbot会要求你输入你的域名(第一次使用可能会要求你输入你的的私人电子邮件地址), 如实填写即可。下面所有的选项全部填写yes即可。 签发之后可能会报错:Could not automatically find a matching server block for example.com. Set the server_name directive to use the Nginx installer这个报错应该是因为你的服务器上没有Web Server (笔者个人理解不确定对不对)。这可能应该会导致你的证书无法自动更新,不过这没有问题。证书过期的时候手动更新就好了

检查SSL证书是否存在, 运行这条指令:ll /etc/letsencrypt/live/example.com, 你应该能看到目录中有下面四个文件:

lrwxrwxrwx. 1 root root  33 Aug 31 16:33 cert.pem
lrwxrwxrwx. 1 root root  34 Aug 31 16:33 chain.pem
lrwxrwxrwx. 1 root root  38 Aug 31 16:33 fullchain.pem 
lrwxrwxrwx. 1 root root  36 Aug 31 16:33 privkey.pem

文件存在,即说明SSL证书已经签发。

配置MariaDB数据库

笔者使用MariaDB数据库,存储域名,用户以及密码等等信息

配置MariaDB数据库的基础配置

首先,运行这条指令启动MariaDB服务:

sudo systemctl start mariadb

然后运行这条指令:

sudo mysql_secure_installation

这条指令可以帮助使用者初始化MariaDB数据库。在过程中设置自己的root密码,然后记录下来 (注意不要把root密码丢了)。其他的选项一律填yes就可以了。

创建域名和用户数据表格

首先,运行这条指令创建mailserver数据库:

sudo mysqladmin -u root -p create mailserver

输入你刚才设置的root密码。

然后,登入MySQL. 使用这条指令

sudo mysql -u root -p

登入之后,运行以下指令,创建一个mailuser的用户(给Postfix和Dovecot查找的时候使用),并赋予查找这个数据库的权限。将指令中最后面部分的mailuserpass设置成自己需要的密码,并记录。完成后运行flush命令

GRANT SELECT ON mailserver.* TO 'mailuser'@'127.0.0.1' IDENTIFIED BY 'mailuserpass';
FLUSH PRIVILEGES;

使用这条指令

USE mailserver

选择到mailserver数据库里面。首先,需要创建一个针对域名需要用到的表。直接输入以下指令即可

CREATE TABLE `virtual_domains` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

创建一个服务于电子邮件地址和密码表. 直接输入以下指令:

CREATE TABLE `virtual_users` (
  `id` int(11) NOT NULL auto_increment,
  `domain_id` int(11) NOT NULL,
  `password` varchar(106) NOT NULL,
  `email` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`),
  FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

创建alias表:

CREATE TABLE `virtual_aliases` (
  `id` int(11) NOT NULL auto_increment,
  `domain_id` int(11) NOT NULL,
  `source` varchar(100) NOT NULL,
  `destination` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

添加用户和密码的数据

输入以下指令,向virtual_domains这个表中,添加数据。将指令中的example.com和hostname分别替换为你的域名和你的主机名。

INSERT INTO `mailserver`.`virtual_domains`
  (`id` ,`name`)
VALUES
  ('1', 'example.com'),
  ('2', 'hostname.example.com'),
  ('3', 'hostname'),
  ('4', 'localhost.example.com');

然后,在virtual_users表中,分别创建email1和email2两个用户用于测试。

INSERT INTO `mailserver`.`virtual_users`
  (`id`, `domain_id`, `password` , `email`)
VALUES
  ('1', '1', ENCRYPT('password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email1@example.com'),
  ('2', '1', ENCRYPT('password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email2@example.com');

确认数据库是否配置正确

分别运行下面的指令,然后检查输出的表是否正确:

SELECT * FROM mailserver.virtual_domains;
SELECT * FROM mailserver.virtual_users;

最后使用exit指令登出MariaDB数据库。

配置Postfix服务器

Postfix 是一种电子邮件服务器,它是由任职于IBM华生研究中心(T.J. Watson Research Center)的荷兰籍研究员Wietse Venema为了改良sendmail邮件服务器而产生的。最早在1990年代晚期出现,是一个开放源代码的软件。

配置main.cf

首先,打开/etc/postfix/main.cf 文件,按照下面的内容进行配置。推荐使用vim编辑器。可以直接搜索每一个参数,然后进行配置。这里注意,有一些地方可能已经有默认的配置被取消注释了。在配置的时候,如果选择取消正确配置的注释,那么请将错误的配置注释掉。重点关注inet_interfaces的配置。

vim /etc/postfix/main.cf

之后打开或创建都用vim 命令↑

smtpd_banner = $myhostname ESMTP $mail_name (CentOS)
biff = no
 
append_dot_mydomain = no
 
readme_directory = no
 
smtpd_tls_cert_file=/etc/letsencrypt/live/example.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/example.com/privkey.pem
smtpd_use_tls=yes
smtpd_tls_auth_only = yes
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous
 
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydomain = example.com
myorigin = $mydomain
mydestination = localhost, localhost.$mydomain
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
 
virtual_transport = lmtp:unix:private/dovecot-lmtp
 
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,
        mysql:/etc/postfix/mysql-virtual-email2email.cf

注意,上述配置文件不是完整文件,请搜索每一个参数,如果不存在的参数则自行添加即可。

创建并配置main.cf中声明的文件

首先,创建/etc/postfix/mysql-virtual-mailbox-domains.cf文件。并在文件中添加以下内容。将mailuserpass换成上面设置的mailuser的密码 (注意不是root密码)。之后打开与创建都是同意操作

vim /etc/postfix/mysql-virtual-mailbox-domains.cf
user = mailuser
password = mailuserpass
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'

然后,创建/etc/postfix/mysql-virtual-mailbox-maps.cf同样的操作

user = mailuser
password = mailuserpass
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_users WHERE email='%s'

然后创建/etc/postfix/mysql-virtual-alias-maps.cf同样的操作

user = mailuser
password = mailuserpass
hosts = 127.0.0.1
dbname = mailserver
query = SELECT destination FROM virtual_aliases WHERE source='%s'

然后创建/etc/postfix/mysql-virtual-email2email.cf同样的操作

user = mailuser
password = mailuserpass
hosts = 127.0.0.1
dbname = mailserver
query = SELECT email FROM virtual_users WHERE email='%s'

检查main.cf的配置是否正确

首先,重启Postfix

sudo systemctl restart postfix

运行以下两条指令确认Postfix是否能够查找数据库中的表。如果没有问题,指令应该返回'1'。

sudo postmap -q example.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
sudo postmap -q email1@example.com mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

配置master.cf

打开 /etc/postfix/master.cf这个文件,然后按照下面的内容进行配置。记住,不要重复参数。

smtp      inet  n       -       n       -       -       smtpd
#smtp      inet  n       -       -       -       1       postscreen
#smtpd     pass  -       -       -       -       -       smtpd
#dnsblog   unix  -       -       -       -       0       dnsblog
#tlsproxy  unix  -       -       -       -       0       tlsproxy
submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       -       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

运行

sudo chmod -R o-rwx /etc/postfix

然后重启Postfix

sudo systemctl restart postfix

配置Dovecot服务器

Dovecot 是一个开源的 IMAP 和 POP3 邮件服务器,支持 Linux/Unix 系统。POP / IMAP 是 MUA 从邮件服务器中读取邮件时使用的协议。其中, POP3协议是从邮件服务器中下载邮件存起来,IMAP4 则是将邮件留在服务器端直接对邮件进行管理、操作。Dovecot 是一个比较新的软件,由 Timo Sirainen 开发,最初发布于 2002年7月。作者将安全性考虑在第一,所以 Dovecot 在安全性方面比较出众。另外,Dovecot 支持多种认证方式,所以在功能方面也比较符合一般的应用

配置基本配置文件

首先,打开/etc/dovecot/dovecot.conf 然后将下面的两行参数取消注释

protocols = imap pop3 lmtp
listen = *, ::

然后打开/etc/dovecot/conf.d/10-mail.conf, 配置下面的参数

mail_location = maildir:/var/mail/vhosts/%d/%n
mail_privileged_group = mail

运行

sudo mkdir -p /var/mail/vhosts/example.com

创建文件夹。注意将example.com替换成你的域名。然后运行下面的指令,创建vmail用户,并赋予它访问权限

sudo groupadd -g 5000 vmail
sudo useradd -g vmail -u 5000 vmail -d /var/mail/
sudo chown -R vmail:vmail /var/mail/

打开/etc/dovecot/conf.d/10-auth.conf 并配置以下参数:

disable_plaintext_auth = yes
 
auth_mechanisms = plain login
 
!include auth-system.conf.ext
 
!include auth-sql.conf.ext

打开/etc/dovecot/conf.d/auth-sql.conf.ext配置一下参数:

passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}
 
userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}

创建/etc/dovecot/dovecot-sql.conf.ext然后在里面输入一下内容。注意将密码替换成自己的。

driver = mysql
connect = host=127.0.0.1 dbname=mailserver user=mailuser password=mailuserpass
default_pass_scheme = SHA512-CRYPT
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

运行以下指令,赋予Dovecot访问权限:

sudo chown -R vmail:dovecot /etc/dovecot
sudo chmod -R o-rwx /etc/dovecot

配置master.conf

打开/etc/dovecot/conf.d/10-master.conf这个文件,分别找到下面5个服务,并按照下面给定的参数进行配置

service imap-login {
  inet_listener imap {
    port = 0
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
 
}
 
service pop3-login {
  inet_listener pop3 {
    port = 0
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}
 
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    #mode = 0666i
    mode = 0600
    user = postfix
    group = postfix
  }
 
}
 
service auth {
 
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
 
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
  }
 
  user = dovecot
}
 
service auth-worker {
 
  user = vmail
}

打开:/etc/dovecot/conf.d/10-ssl.conf配置下面的参数:

ssl = required
 
ssl_cert = </etc/letsencrypt/live/example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/example.com/privkey.pem

最后重新启动Dovecot:

sudo systemctl restart dovecot

邮件服务器初步测试

到目前为止,如果配置没有问题,发送本地邮件已经没有任何问题了。笔者建议在这里先进性一次MailX测试,已确认上述配置是否正确。

MailX本地传输邮件测试

安装MailX并发送邮件 (MailX不需要关心版本问题,直接安装即可)

yum install mailx
mail email1@example.com

第二条指令会从root用户向你的email1账户发送邮件。随便发送任何内容都可以。

然后使用cd指令,进入到文件夹

cd /var/mail/vhosts/example.com/email1。

进入之后,输入find指令, 查看是否输出以下内容

./dovecot-uidvalidity
./new
./maildirfolder
./dovecot.index.cache
./cur
./cur/1539202420.M440788P27259.mail,S=450,W=465:2,S
./dovecot.index.log
./dovecot-uidlist
./dovecot-uidvalidity.5bbe5d50
./tmp

如果成功看到了这些内容,那么本地测试就已经成功了

邮件客户端接收邮件测试

本地测试成功之后,还需要测试邮件客户端是否能够收到邮件。这里推荐使用FoxMail进行测试。前往FoxMail的官方网站,下载FoxMail的客户端到自己的PC (看清楚了,别装到服务器上去)。

下载安装完成之后,选择登录其他邮件。地址输入email1@example.com, 密码输入你的第一个用户的密码 (在MariaDB中配置过)。登录的时候会要求你填写一些设置。按照下面的示例填写,或者可以按照你自己的DNS配置填写。注意一定要勾选SSL选项

这时你应该能够从收件箱中看到你刚刚发送的测试邮件

其他DNS和签名配置

只有这样的配置是没有办法向外部发送邮件,也没有办法接收外部邮件的。如果需要收发外部邮件,还需要进行以下配置。

配置SPF记录

回到一开始的DNS记录配置界面,添加下面这条记录 (将xxx.xx.xxx.x替换为你的IP地址)

TypeNameTXT ValueTTL
TXT@v=spf1 ip4:xxx.xx.xxx.x ~all600

配置反向DNS记录 (PTR记录)

现在,由于有大量的垃圾邮件,很多邮件服务器都会要求邮件发送方配置反向DNS记录,也就是PTR记录。PTR记录并不是由你的域名提供商提供,而是由ISP提供,也就是你的云服务器提供商。如果你的云服务器提供商并没有在设置界面允许你配置反向DNS记录,那么你需要联系它们的客服来进行配置。

找到反向DNS记录配置的页面
需要注意的有两点:反向DNS记录的生效时间远远超过普通DNS记录。配置完反向DNS记录可能需要将近一个小时才能生效。另外,如果你的DNS记录中,配置的是smtp.example.com, 那么你需要将反向DNS记录配置为smtp.example.com

配置DKIM记录

现在,很多的邮件服务器都会要求邮件发送方发送的每一封邮件中,都有DKIM签名。如果没有DKIM签名,有很大概率你发出的邮件会被拒收

在服务器配置DKIM签名

首先,使用

sudo yum install opendkim

安装OpenDKIM. 这一步不需要考虑版本的问题。

安装完成之后打开配置文件/etc/opendkim.conf按照下图进行配置


找到Mode v, 并改成Mode sv。然后找到下面所演示的参数,直接取消注释即可。

最后,在文件尾部,加上下面两行内容

Domain example.com
RequireSafeKeys False

然后,打开/etc/opendkim/SigningTable这个文件,在最后一行,加上如下配置:

*@example.com default._domainkey.example.com

然后,打开/etc/opendkim/KeyTable文件,并在文件末尾添加下面一行内容:

default._domainkey.example.com example.com:selector:/etc/opendkim/keys/yourdomain.com/default.private

打开/etc/opendkim/TrustedHosts 添加*.example.com, 如下图:

在DNS中配置DKIM记录

在服务器中创建文件:

 sudo mkdir /etc/opendkim/keys/example.com

然后输入下面两条指令生成Key并输出:

sudo opendkim-genkey -b 1024 -d example.com -D /etc/opendkim/keys/example.com -s default -v
sudo chown opendkim:opendkim /etc/opendkim/keys -R 
sudo cat /etc/opendkim/keys/example.com/default.txt 

然后会输出如下内容。将内容复制到剪贴板。

打开DNS配置界面,添加如下记录。Value粘贴刚刚复制的内容,但是注意将中间的引号和空格删掉(那是由于换行所添加的引号,如示例)

typeNameTXT ValueTTL
TXTdefault._domainkey.example.comv=DKIM1; k=rsa;p=.....600

配置Postfix使用DKIM签名

打开文件/etc/postfix/main.cf 在结尾加入如下内容:

smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

最后重启Postfix和OpenDKIM:

sudo service opendkim restart
sudo service postfix restart

`这样一样来就全部配置完成了!(撒花~~)

可以使用FoxMail发送一封外部邮件,看看有没有问题`

打开更详细的日志

如果配置的有问题,可以根据下面的步骤打开更详细的日志,来锁定配置的问题。

打开Dovecot的Verbose Logs

打开/etc/dovecot/conf.d/10-logging.conf找到下面的参数,取消注释并配置为yes

auth_verbose = yes
mail_debug = yes
verbose_ssl = yes

然后重启Dovecot

sudo systemctl restart dovecot。

打开Postfix的Verbose Logs

打开/etc/postfix/master.cf, 在下面一行中加上 -v:

smtp      inet  n       -       -       -       -       smtpd -v

smtps同理。完成后,重启Postfix

sudo systemctl restart postfix

参考链接:
https://blog.51cto.com/kusorz/1703769
https://www.linode.com/docs/guides/email-with-postfix-dovecot-and-mariadb-on-centos-7/
https://www.linode.com/docs/guides/troubleshooting-problems-with-postfix-dovecot-and-mysql/
https://baike.baidu.com/item/postfix/10077421
https://baike.baidu.com/item/dovecot/3523768
https://easydmarc.com/blog/how-to-configure-dkim-opendkim-with-postfix/
https://www.vultr.com/docs/how-to-create-reverse-dns-or-ptr-records-in-the-vultr-control-panel/

版权声明:本文为岁月倾城197博主原创文章,遵循CC 4.0 BY-SA 版权协议

原文链接:https://blog.csdn.net/newtypeofc/article/details/132612851