【Linux】postfixをインストールしてメールを飛ばすところまで

Linux
この記事は約5分で読めます。

はじめに

個人的にメール関連の処理はちょっとアレルギーがあります…。
メールがそもそも届かない・裏側の処理が見えない・古くからある技術なので要素がてんこ盛りといった具合に「ふ~む。。。」と感じている人も多いのではないでしょうか?

今回のこの記事では、postfixをインストールして実際にメールを飛ばすところまで解説します。
抜けもれがあるときはぜひぜひご教示いただけますと幸いです!

環境

  • OS
cat /etc/os-release | grep -i pretty
> PRETTY_NAME="Ubuntu 20.04.6 LTS"

postfixのインストールと設定

  • ↓コマンドを実行してインストール
apt install -y postfix

↑途中でなにか選択するように求められたらNo Configurationを選択してください。

ケン
ケン

適当に選択しちまったよって人は、↓のコマンドで再度選択できるから試してみてね!

dpkg-reconfigure postfix

  • インストールされたか確認
systemctl list-unit-files | grep postfix

または

dpkg -l | grep postfix

↑いずれかのコマンドで何かしら表示されればok!

  • 設定ファイルのコピー
cp -a /etc/postfix/main.cf.proto /etc/postfix/main.cf

※↑は設定ファイルをいじるときにバックアップをとるのと似てるけど、
コピー先の/etc/postfix/main.cfがpostfixの設定ファイルになります。
インストールしただけだと、main.cfがないから設定テンプレート(/etc/postfix/main.cf.proto)みたいなのをコピーするといったイメージ。

  • コピーした設定ファイルを開く。
vi /etc/postfix/main.cf
  • 以下の項目を記述
compatibility_level = 2
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix/sbin
data_directory = /var/lib/postfix
unknown_local_recipient_reject_code = 550
mynetworks = 127.0.0.0/8
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5
myhostname = {$自分のホスト名} ← hostnameコマンドで表示可能
mydomain = {$ドメイン名} ← 自分のドメイン(@以降のもの)
mydestination = 
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /etc/postfix
readme_directory = /usr/share/doc/postfix
inet_protocols = ipv4
append_at_myorigin = yes
append_dot_mydomain = yes
inet_interfaces = localhost
ケン
ケン

main.cf.protoにはすでに設定が記述されているので、↑の項目をすべて検索して編集するのもいいですがミスがあったときにメールが飛ばないといった事態が起きるので以下の方法で全行削除してから↑を丸々コピペすることをお勧めします!

▼viでファイルを開いている状態で…

1000dd

↑1000行削除するという意味

▼ファイルを開いていない状態のとき…

echo ” > /etc/postfix/main.cf

↑空文字列を出力して設定ファイルにそれを書き込むという意味

  • 設定再読み込み
systemctl reload postfix

実際にメールを飛ばしてみる

  • メールを飛ばすコマンドをインストールする
apt install -y mailutils
  • ↓を実行する
echo "{$本文の内容}" | mail -s "{$件名の内容}" {$メールアドレス}
例)echo "body" | mail -s "subject hogehoge@gmail.com
ケン
ケン

本文と件名ともに日本語などは入力しないようにしてね!
mailコマンドは文字コードASCIIでの動作が想定されているので、日本語を送りたいとなったら別途エンコーディングやヘッダーの設定が必要になってくるよ。
メールアドレスの欄には確認できるように自分のメールアドレスを入れてね!

いたずらで他の人に飛ばしたら絶対ダメ!

最後に

今回はpostfixをインストールしてから実際に飛ばすところまでを一通りやってみました。
実際にこの設定では実務においてはセキュリティ面でとやかく言われることはあるかと思いますが、
まずはメール処理の第1歩としてメールを飛ばすところまでをやってみてはいかがでしょうか。
そこから、深堀りしていって徐々にメール処理に強くなっていきましょう・・・!

ケン
ケン

またね~~~~!

コメント