こんにちは、ITエンジニアのKomuraです。
最近ではクラウドでのSaaSによるメールサービス(GoogleのG SuiteやMicrosoftのOffice365など)が一般的になり、以前ほどメールサーバーを構築する機会も少なりましたが、この辺りでメールサーバーの構築手順をおさらいしておきたいと考えるようになりました。
以前のようにメールフローやメールシステムのことを考えないときにこそ、初心に戻ってメールサーバーの構築手順を一から確認したいと思います。
メールサーバーを構築することで、メールフローやメールのバックエンドの動作を理解できる、またメールに関するトラブルシューティングを行う際にもフローのイメージが出来、短時間で収束できるようになるはず。
是非、本記事を含む「メールサーバーの構築の基礎(全4回)」で、メールサーバーを構築して、メールシステムについての理解を深めて下さい。最終的にはセキュアなメールサーバーの構築をゴールとしています。
メールサーバー構築の基礎 全4回
-
1
-
CentOSとPostfixを使って送信専用のメールサーバーを構築する方法
2023/3/30 メールサーバー構築
こんにちは、ITエンジニアのKomuraです。 最近ではクラウドでのSaaSによるメールサービス(GoogleのG SuiteやMicrosoftのOffice365など)が一般的になり、以前ほどメールサーバーを構築する機会も少なりましたが ...
-
2
-
CentOSのPostfixとDovecotで送受信ができるメールサーバーを構築
2021/9/25 メールサーバー構築
前回の記事ではCentOSにインストールしたPostfixでメールを送信できるようにするところまでの設定手順を紹介しました。今回は同じ環境を使ってメールの送信と受信ができるところまでの設定手順を紹介します。 外部からのメールを受け取ることも ...
-
3
-
CentOSのPostfixとDovecotにSSLを設定して安全に通信を行う
2021/9/22 メールサーバー構築
前回の記事ではメールサーバーとしての基本的な機能である送信(SMTP)と受信(POP3/IMAP)を行うことが出来るように設定を行いました。 この状態でも運用には問題ありませんが、メールサーバーとクライアント間で通信が平文になっていますので ...
-
4
-
CentOSのPostfixで迷惑メール判定されないようDKIMを設定する
2023/10/19 メールサーバー構築
構築したメールサーバーから送信したメールが迷惑メールとして識別されたことはありませんか?このような場合は、送信したメールが経由するメールサーバーのなりすましメール対策に引っかかっている場合が殆どです。(まれに迷惑メールのブラックリストに登録 ...
初回になる本記事ではまず「送信専用メールサーバー」の構築手順から紹介していきます。段階的に機能を実装する手順を紹介していきますので、是非、最後までお付き合いください。
1. メールサーバーを構築する環境
まずは、Linuxで送信専用のメールサーバーを構築します。例えばウェブサイトのお問い合わせフォームや、自動処理の結果をメールするための設定で、他のサーバーからメールを中継せずに、自身からのみメールを配信する構成です。意外にも、この辺りについて設定ができてない場合が多く見受けられます。もしこのような構成を運用している場合には、再度、本記事を元に設定を確認してみるのも良いかと思います。
メールサーバーを構築する場合、OSプラットフォームはLinuxがお勧めです。理由としてWindowsではメールサーバー用のソフトウェアとして適当なものが無く、また外部に公開するのにやや堅牢さに欠ける部分があるからです。
注意
代表的なIaaSのクラウドサービス「Amazon Web Service(AWS)」のEC2や「Google Cloud Platform(GCP)」のCompute engine環境ではメールの配信に必要なTCPポートがブロックされています。これは迷惑メールを配信するためのサーバー利用を拒否するためです。折角、メールサーバーの設定を行ってもメールが配信できませんので、クラウドサービスの利用には注意してください。
本記事ではLinux構築に関する以下の記事で構築したCentOS 7の環境を利用してメールサーバーをセットアップしていきます。
-
あわせて読みたいCentOS 7.6をインストール Linuxのインストールは難しくありません
こんにちは、ITエンジニアの小村(@system_kom)です。 Windowsをインストールした経験のある人は多いと思いますが、Linuxをインストール経験がある人は少ないのではないでしょうか。 Linuxのインストールはサーバー構築の基 ...
-
あわせて読みたいCentOS 7のインストール後におこなうLinuxの基本設定 13ポイント
CentOS 7(バージョン7.0~7.6)のインストール完了後に、設定する最低限のポイントを13点纏めてみました。(2019年6月に追加)本記事で紹介した手順は一例で、これ以外にもサーバーを構築するためには複数の手順が必要になります。まず ...
OS以外の環境(サーバーの基本設定やネットワーク設定)は以下のようになっています。
サーバーとネットワークの環境
- サーバーにはパブリックの固定IPが割り当てられています
- ドメインはtestdom.comを利用
- ホスト名にはmailを設定
- メールサーバーは配送専用として、リレーなどは出来ない構成
以上の環境を元に、メールサーバーの構築を進めていきます。
2. メール配送用プログラム(MTA)の確認とインストール
メールを配送するためにはメール配送用プログラム(Mail Transfer Agent、以下MTA)が必要になります。Linuxで利用できるMTAは現在Postfixというプログラムが主流になっています。Postfixは本記事で利用するLinux OS「CentOS」を「インフラストラクチャーサービス」としてセットアップした場合にはインストールされていますので、追加で導入する必要はありません。
PostfixがCentOSにインストールされているかの確認については、"yum list"コマンドを実行します。
command
$ yum list installed | grep postfix
コマンドを実行して、以下のようにpostfixの名前が表示されれば利用しているOSにpostfixはインストールされています。
command
$ yum list installed | grep postfix
postfix.x86_64 2:2.10.1-6.el7 @anaconda
もし何も表示されない場合、postfixはインストールされていませんので、項目2-2. に記載した手順でpostfixのインストールを行います。
2-1. postfixのインストール
"yum list"コマンドでpostfixがインストールされていないことが確認できた場合、本項目の手順でpostfixをインストールします。
postfixは"yum install"コマンドを実行してインストールします。
command
# yum -y install postfix
コマンドを実行すると以下のようにパッケージインストールが始まります。
log
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.cat.net
* extras: mirrors.cat.net
* updates: mirrors.cat.net
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ postfix.x86_64 2:2.10.1-6.el7 を インストール
--> 依存性解決を終了しました。依存性を解決しましたインストール中:
postfix x86_64 2:2.10.1-6.el7 base 2.4 Mトランザクションの要約
インストール 1 パッケージ総ダウンロード容量: 2.4 M
インストール容量: 12 M
Downloading packages:
postfix-2.10.1-6.el7.x86_64.rpm | 2.4 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : 2:postfix-2.10.1-6.el7.x86_64 1/1
検証中 : 2:postfix-2.10.1-6.el7.x86_64 1/1インストール:
postfix.x86_64 2:2.10.1-6.el7
完了しました!
画面に「完了しました!」と表示されればpostfixはインストールされています。
再度yum listコマンドを実行してpostfixパッケージが表示されることを確認します。
command
$ yum list installed | grep postfix
postfix.x86_64 2:2.10.1-6.el7 @anaconda
上記のようにpostfixのパッケージ名が表示されれば、インストールは完了です。
3. postfixの基本的な設定
続いてpostfixをインストールしたサーバーからメールを送信するための基本的な設定を行っていきます。
項目2. の手順までで、postfixパッケージの導入(または確認)までが完了しました。ここからは配送用メールサーバーを運用するにあたって最低限、必要になる設定を行います。設定の前提は以下の通りです。
Postfixを設定するための前提
- メールの配信時に表示されるドメイン名の設定を行う
- メールはサーバーから配信専用に設定
- スパムメール対策としてメールリレーを許可しない
- メールサーバー自身では外部からメールを受け取らない
上記のの条件に合わせてpostfixの設定を行っていきます。
3-1. postfixのデフォルト設定確認
postfix導入時の初期設定については、postconfコマンドで確認ができます。postconfコマンドはpostfixの設定ファイルを要約した結果を表示するコマンドです。”-d”オプションはデフォルト値が全て取得できますが、余りに項目が多いため、デフォルトパラメーターとは異なる設定のみを明示的に表示する”-n”オプションを付与します。
以下のように実行します。
command
# postconf -n
コマンドを実行すると、以下のように設定内容の要約が表示されます。
log
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = localhost
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
postconfコマンドで表示される設定内容は、postfixの設定ファイルであるmain.cfから取得しています。main.cfはパッケージからpostfixを導入した場合には”/etc/postfix/”ディレクトリ以下に配置されています。/etc/postfixは以下のようなディレクトリツリーとファイル構成になります。
|-- access
|-- canonical
|-- generic
|-- header_checks
|-- main.cf
|-- master.cf
|-- relocated
|-- transport
|-- virtual.db
`-- virtual
このディレクトリに含まれるファイル、main.cfを変更していきます。
3-2. main.cfの変更
postfixの設定ファイルであるmain.cfの編集前に、編集前のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。
command
# cp -p /etc/postfix/main.cf /etc/postfix/main.cf.org
cpコマンドでmain.cfに.orgを付けてファイルをコピーしました。これでバックアップは完了です。
バックアップの完了後、エディタで設定ファイルを開いて変更を行います。本記事ではOSの標準的なエディタである、viエディタを利用しています。
command
# vi /etc/postfix/main.cf
main.cf設定ファイルが開きます。具体的は変更ポイントは以下になります。
3-2-1. myhostnameパラメータ
"myhostname"パラメーターには、メールサーバーのホスト名を設定します。この設定はFQDN(ホスト名+ドメイン名)で指定します。デフォルトの設定ではhostnameコマンドで表示されるローカルホスト名(本環境ではmail)が設定されます。
本環境ではホスト名がメールサーバーの名前を示していますが、例えばウェブサーバー用のホスト名でwwwなどを指定していた場合は、そのままだと分かり難いため、本パラメーターにメールサーバー用のFQDNを指定します。
以下のように設定しました。(設定ファイルの該当場所を抜粋しています。)
code
# INTERNET HOST AND DOMAIN NAMES
#
# The myhostname parameter specifies the internet hostname of this
# mail system. The default is to use the fully-qualified domain name
# from gethostname(). $myhostname is used as a default value for many
# other configuration parameters.
#
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
myhostname = mail.testdom.com
3-2-2. mydomainパラメータ
メールのドメインを設定するパラメータが"mydomain"になります。mydomainはデフォルトでは項目3-2-1.の"myhostname"パラメータに設定したドメイン名が利用されます。myhostnameが適切に設定されていれば、ここでの設定は不要ですが、念のため設定を行っておきます。ドメイン名がmyhostnameに設定したドメインと異なる場合には必須の項目です。
以下のように設定しました。(設定ファイルの該当場所を抜粋しています。)
code
# The mydomain parameter specifies the local internet domain name.
# The default is to use $myhostname minus the first component.
# $mydomain is used as a default value for many other configuration
# parameters.
#
#mydomain = domain.tld
mydomain = testdom.com
3-2-3. inet_interfacesパラメータ
"inet_interfaces"パラメータはメールを受け取りインターフェイスを指定します。デフォルトの設定はlocalhostとなり、この場合にはlocalhost(自分自身)からのメールのみ受け取る設定になります。
今回の記事で構築する環境では、配送専用のメールサーバーになりますのでデフォルトからの変更を行いません。(他のメールサーバーから接続できないため、配信専用になります。)通常のメールサーバーのようにメールを配送するためには、このパラメータをallに設定します。
code
# RECEIVING MAIL# The inet_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on. By default,
# the software claims all active interfaces on the machine. The
# parameter also controls delivery of mail to user@[ip.address].
#
# See also the proxy_interfaces parameter, for network addresses that
# are forwarded to us via a proxy or network address translator.
#
# Note: you need to stop/start Postfix when this parameter changes.
#
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
inet_interfaces = localhost
3-2-4. inet_protocolsパラメータ
"inet_protocols"はpostfixが待ち受けを行うプロトコル(IPv4 or IPv6を指定します。デフォルト値はallとなり、ipv4とipv6の両方で待ち受けを行います。もしIPv4のみを利用する場合は、このパラメータを
code
inet_protocols = ipv4
と指定します。本記事では、デフォルト値のままで変更を行いません。例えば環境によってはIPv6を無効にしている場合もあると思います。その場合はIPv4を明示的に指定します。
code
# Enable IPv4, and IPv6 if supported
inet_protocols = all
3-2-5. masquerade_domainsパラメータ
"masquerade_domains"パラメータは送信元メールアドレスのサブドメイン部分(ホスト名の部分)を削除するオプション設定です。
このパラメータを指定しない場合、送信元が以下のような形で表示されます。
通常、メールアドレスにはサブドメインは表示しないパターンが多いかと思います。本記事でもサブドメインを表示しないようにパラメータを設定します。オプションのため、設定ファイルには項目がありません。
設定ファイルの最下行に以下のように追加します。
code
masquerade_domains = testdom.com
3-3. main.cf 設定後の確認
上記の5点で配送用メールサーバーの基本的な設定は完了です。
再度、postconfコマンドで設定を確認します。本設定を行った後の出力結果は以下のようになりました。
command
# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = localhost
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
masquerade_domains = testdom.com
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = testdom.com
myhostname = mail.testdom.com
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
出力結果を確認して、設定を変更した内容が正常に反映されていることを確認します。
postfixには設定ファイルの誤りをチェックするためのコマンド”postfix check”が用意されています。
このコマンドで設定ファイルのチェックも行っておきます。
command
# postfix check
エラーが表示されなければ、設定ファイルには問題がありませんので、確認は完了です。
3-4. main.cf設定ファイル、変更の反映
設定ファイルの変更が完了しましたので、変更した設定を反映するためにpostfixを再起動します。systemctlコマンドを以下のように実行します。
command
# systemctl restart postfix
もしpostfixが起動されていない環境の場合には、restartではなく”start”を指定します。
以下のように実行します。
command
# systemctl start postfix
どちらの場合もエラーが無ければ、正常に起動と再起動は実行されています。
再起動後にpostfixのステータスを確認します。
command
$ systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
Active: active (running) since 水 2018-10-10 16:05:44 JST; 4s ago
Process: 2458 ExecStop=/usr/sbin/postfix stop (code=exited, status=0/SUCCESS)
Process: 2477 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
Process: 2475 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
Process: 2473 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)
Main PID: 2549 (master)
CGroup: /system.slice/postfix.service
tq2549 /usr/libexec/postfix/master -w
tq2550 pickup -l -t unix -u
mq2551 qmgr -l -t unix -u
表示された上記のステータスから、postfixが正常に起動していることが確認できました。
ここまでで、postfixのメール配送について最低限の設定が完了しました。
3-5. postfix自動起動の設定
サーバーの再起動や停止の復旧時にpostfixが自動的に起動するように設定します。postfixはインフラストラクチャーの場合、自動起動が設定済みになっていると思います。以下のコマンドで確認を行い、自動起動が有効になっていない場合のみ、有効にして下さい。確認は以下のようにコマンドを実行します。
command
# systemctl is-enabled postfix
enabled
実行結果として“enabled”と表示されれば自動起動は有効になっています。
postfixに自動起動が設定されていない場合(disabledと表示された場合)には以下のコマンドを実行してpostfixの自動起動を有効にします。
command
# systemctl enable postfix
エラーが出力されなければ、自動起動は設定が完了しています。
4. メール配送の確認
メールの設定が完了しましたので、実際にテスト用のメールを配送してみます。telnetコマンドを利用してSMTPプロトコルでメールサーバーへ接続します。以下のように実行します。
尚、telnetコマンドが無い場合は
command
# yum -y install telnet
でtelnetパッケージをインストールして下さい。
4-1. telnetでのSMTP接続
telnetコマンドを利用してのSMTP接続は以下のように実行します。具体的には telnet アドレス ポート名になります
command
$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 smtp.testdom.com ESMTP Postfix
正常に接続できると、リターンコード220の応答があり、入力待ち状態に入ります。
heloコマンドで応答します。localhostの部分は任意です。
command
helo localhost
250 mail.testdom.com
リターンコード250が返ってきます。続いて、送信元のメールアドレスを入力します。”mail from:”コマンドを使います。
command
mail from:test@testdom.com
250 2.1.0 Ok
リターンコード250で正常に受け付けられました。次に送信先メールアドレスを入力します。”rcpt to:”コマンドを使います。
メールアドレスは実際に確認ができるメールアドレスにして下さい。
command
rcpt to:support@remsys.co.jp
250 2.1.5 Ok
メール本文を入力します。”data”コマンドを利用します。
commanddata
354 End data with .
testmail
testmailと本文を書きました。入力の終わりには.(ドット)を入力します。
command.
250 2.0.0 Ok: queued as 0C28E6DAC7
メールがキューに入った旨が表示されれば、メールの送信は完了です。quitコマンドでSMTP接続を切断します。
command
quit
221 2.0.0 Bye
Connection closed by foreign host.
4-2. メールログの確認
これだけだとメールが配送できたかの確認ができませんので、メールログを確認してみます。
メールログは”/var/log/maillog”に保存されています。lessコマンドなどでログを表示して、メールが配送されているかを確認してみます。
以下のように実行します。
command
# less /var/log/maillog
Oct 10 16:08:22 mail postfix/smtpd[2555]: 0C28E6DAC7: client=localhost[127.0.0.1]
Oct 10 16:08:30 mail postfix/cleanup[2558]: 0C28E6DAC7: message-id=<20181010070822.0C28E6DAC7@mail.testdom.com>
Oct 10 16:08:30 mail postfix/qmgr[2551]: 0C28E6DAC7: from=<testuser01@testdom.com>, size=317, nrcpt=1 (queue active)
Oct 10 16:08:33 mail postfix/smtp[2559]: 0C28E6DAC7: to=<sup@remsys.co.jp>, relay=r*************.com[23.103.139.138]:25, delay=30, delays=27/0.06/1.1/2.1, dsn=2.6.0, status=sent (250 2.6.0 <20181010070822.0C28E6DAC7@mail.testdom.com> [InternalId=20465519166791, Hostname=***********.com] 7634 bytes in 0.339, 21.934 KB/sec Queued mail for delivery)
※ログの一部を伏せています。
ログを見ると、fromとtoが正常に処理されて、リレー先のメールサーバーに渡されていることが確認できます。上記からメールが正常に配送されたことが確認できました。基本的には赤字部分の
Queued mail for delivery
がSMTPログに含まれていれば、メールについては配送されていると思って間違いありません。
実際に配送先のメールボックスを確認してメールが配送されていることを確認して下さい。(配送されていない場合には迷惑メールボックスを確認して下さい。)
5. 迷惑メールへの対応 SPFレコード
配送されたメールですが、少しセキュリティレベルの高いメールサーバーを経由する場合、迷惑メールとして処理されることがあります。これは配送されたメールが迷惑メールでない事を証明する設定であるSPF(Sender Policy Framework:送信元認証用の設定)やDKIM(Domainkeys Identified Mail:メール用電子署名)といった設定が行われていないためです。
本記事では比較的簡単に設定できる方法としてSPFの設定方法を紹介します。SPFを設定した場合でも、完全に迷惑メールとして認識されないということはありませんが、設定しておくことで、迷惑メールとして処理される率が随分と低くなります。
参考 DKIMの設定については記事
-
CentOSのPostfixで迷惑メール判定されないようDKIMを設定する
構築したメールサーバーから送信したメールが迷惑メールとして識別されたことはありませんか?このような場合は、送信したメールが経由するメールサーバーのなりすましメール対策に引っかかっている場合が殆どです。(まれに迷惑メールのブラックリストに登録 ...
に詳しく説明しています。合わせて参考にしていただければ幸いです。
5-1. SPFの設定
SPFはメールサーバー側で設定する機能ではなく、DNS側に設定するものになります。ドメインのDNSレコードのうち、付帯情報を追加するためのレコードである”txt”レコードとしてSPFを登録します。本環境ではメールサーバーのIPアドレスが110.20.3.145で、ドメイン名が”testdom.com”になりますので、txtレコードは以下のようになります。
testdom.com. 500 IN TXT "v=spf1 +ip4:110.20.3.145 -all"
txtレコード設定追加の方法は利用しているドメインの取得業者(レジストラ)によって異なりますが、弊社で良く利用しているAmazon Web Service (AWS)のドメイン管理機能”route53”では以下のように設定します。
お名前.comの場合は以下のようになります。
各ドメインのゾーン設定完了後には、有効になるように設定を保存します。
5-2. SPFの設定確認
SPFの動作確認ですが、Linuxサーバーからdigコマンドで確認します。
dnsの動作確認に利用するhostコマンドはbind-utilsパッケージに含まれています。このパッケージはCentOSをインフラストラクチャーでインストールした場合には含まれていませんので、yumコマンドで以下のようにインストールを行います。
※既にbind-utilsパッケージがインストールされている場合、本手順は不要です。
command
# yum -y install bind-utils
bind-utilsパッケージをインストールすることで、digコマンドが利用できるようになります。txtレコードを確認するためにはいかのようにdigを実行します。尚、DNSの設定後、反映まで30分ほどかかる場合があります。
command
$ dig @8.8.8.8 testdom.com txt
@で指定している8.8.8.8はGoogleのDNSキャッシュサーバーになります。
txtレコードが設定されていると、以下のように応答があります。
log
; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7_5.1 <<>> @8.8.8.8 testdom.com txt
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55530
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;testdom.com. IN TXT;; ANSWER SECTION:
testdom.com. 499 IN TXT "v=spf1 +ip4:110.20.3.145 -all";; Query time: 255 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 水 10月 10 16:21:31 JST 2018
;; MSG SIZE rcvd: 84
上記のように応答が返ってくればSPFは正常に設定されています。SPFが有効になるとメールヘッダーに以下のような出力されます。
一度、確認してみて下さい。
6. まとめ
メールサーバーの構築手順として、まずは送信専用サーバーの設定を紹介しました。配信専用のメールサーバーはウェブサーバー上でお問合せフォームを利用する場合など、利用することが多いので、この機会に手順を確認しておくと良いかと思います。
特にpostfixの場合、デフォルトの設定でもメールが外部に送信できますので、そのまま設定変更されていないサーバーも多いのですが、配信されたメールのヘッダーを見ると、「おやっ?」と思うことがあります。
きちんと設定を変更しておくことで、迷惑メールと認識されにくくなりますので、既に運用を行っている方は、是非、設定を確認してみて下さい。次回は本環境を利用して、外部からメールを受けることが出来る設定と、受信を行うことができる設定を紹介していきます。