色々やる流れです。
ネットブックにUbuntu Server入れる
の記事になります。
前回の最後でcronを使ってスクリプトを実行させましたが
今のままでは何か問題があった時にエラーメールが飛ばないので
postfixを入れてエラーメールが飛ぶようにします。
今回はpostfixのリレーを設定して
私が契約してるさくらインターネットのメールサーバー経由でメールを送ります。
各サービスからの送信されるメールの設定については
それぞれ別の設定になるので言及しません。
一応コマンドのmailでメールを送る所までやります。
OSのインストールは最小でsshしか入れなかったので
まずはpostfixとmailコマンドをインストールします。
~$ sudo apt install postfix mailutils
今はpostfixをインストールする時にこんな画面出るんだ…
とりあえずインターネットサイトで次のドメイン名はそのままで
困ったら後で設定弄ればいいやと<了解>を押す。
すんなりインストールが終わりました。
本来ならmain.cfを弄ってFQDNやらなにやら書く所ですが
サービスがエラーメールを送信するためだけのpostfixなので
そのままで動作を試します。
ローカルアカウントからローカルアカウントへ試験メールを送信します。
~$ mail eclair
Cc:
Subject: タイトル
本文
(ctrl+dでメール入力を終了)
このアカウントはeclairでeclair相手にメールを送信しました。
Ccは無し、Subjectはタイトル、本文は本文です。
ホスト名はpine
最初.でメール入力を終了しようとしたけど終了しなくて焦りました。
ubuntuのmailコマンドはCtrl+dで入力を終了するらしいです。
送ったメールをmailコマンドで受信してみます。
eclair@pine:~$ mail
"/var/mail/eclair": 1 message 1 new
>N 1 eclair 木 4月 26 23: 13/381 タイトル
? 1 (番号入れてメールを読みます)
Return-Path:
X-Original-To: eclair@pine
Delivered-To: eclair@pine
Received: by pine (Postfix, from userid 1000)
id DCF0F81EF5; Thu, 26 Apr 2018 23:23:07 +0900 (JST)
To:
Subject: タイトル
X-Mailer: mail (GNU Mailutils 3.1.1)
Message-Id: <20180426142307.DCF0F81EF5@pine>
Date: Thu, 26 Apr 2018 23:23:07 +0900 (JST)
From: eclair@pine (eclair)
本文
? q
Saved 1 message in /home/eclair/mbox
Held 0 messages in /var/mail/eclair
eclair@pine:~$
受信と表示が出来ていました。
ちなみに
~$ mail eclair -r sousin@hogehogehost
と言う感じで-rオプションの後にメアドをつけると
メールのReturn-Pathが
Return-Path:
のように設定できます。
postfixが動いている事が確認できたので
次はさくらインターネットのメールサーバーへのrelayを設定します。
うちのメーラーはBecky!なので
https://help.sakura.ad.jp/hc/ja/articles/206054142
を参考にします。
(以下、サーバー名ユーザー名などはこのページの物を使用)
~$ sudo vi /etc/postfix/main.cf
設定を書きかえます。39行目付近の
relayhost =
の所を以下のように変更追記
relayhost = [example.sakura.ne.jp]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/relay_password
smtp_sasl_security_options = noanonymous
ファイルを保存。
次にファイルを作成
中身はドメイン名 ユーザーID:パスワードの書式になります。
~$ sudo vi /etc/postfix/relay_password
[example.sakura.ne.jp]:587 mail@example.sakura.ne.jp:password
ファイルを保存
postmapで先ほどのファイルから検索データベースを作成。
~$ sudo postmap hash:/etc/postfix/relay_password
postfixを再起動して作業完了。
~$ sudo systemctl restart postfix
メールサーバーのrelayが出来ているか確認の送信試験をしてみます。
~$ mail mail@example.sakura.ne.jp -r sousinmoto@hogehogehost
Cc:
Subject: local server postfix test mail
jusin OK?
~$
はい、受信出来ました。
上手く行かない場合は
/var/log/mail.log
を確認!!
ちなみにmailコマンドから外のサーバーへ
マルチバイト文字を含むメールを送信すると文字化けします。
本文にマルチバイト文字を使ったメールを送信する時は
あらかじめ本文をテキストファイルに記載して
(今回はviで書いたmail.txtはUTF-8 (LF))
nkfで文字コードを変換しつつ送ると送れます。
nkfのオプションは環境により色々トライ
~$ nkf -W -s mail.txt | mail mail@example.sakura.ne.jp -r sousinmoto@hogehogehost -s mojicode
こんな感じ
タイトルにマルチバイト文字入れると更に大変なのでやりません。
relayにGmail等他のサーバーを設定できますが必要ないのでやる予定は無いです。
追伸:
mailコマンドの文字化けの試験してる間に
先日設定したcronからのメールが飛んできて問題無く動いた。
タグ:uBuntu