今までRaspberry Pi 3+に16GBのmicroSDを挿してwebサーバとして運用していましたが、手狭になってきたので64GBに改めて環境構築をした時の自分の作業の忘備録です。以前導入した時とだいぶ変わっている部分が多かったので驚いたのが第一印象でした。
前提
- このラズベリーパイは外部に公開はしません。(twitterへのポストはします)
- 普段、このRaspberry Pi 3+は午前7時から午後11時まで30分毎にcronでbotを運用しています。
- そのため一日当たりの作業時間は夜間の23時から0時までの1時間ぐらいをメンテナンス時間として作業を行う予定です。
またこういう世界から遠ざかって久しいのでいろいろと拙い部分があると思います。ご指摘ください。
postfixインストール
今回は、ラズベリーパイからgmailを経由してメールを送ることを目標とします。
あらかじめgmailアドレス取得済み、アプリパスワードでパスワード取得済みであることが前提です。アプリパスワードについてはこちら。
あと、今回参考にしたサイトはこちら
ここを見ながらでほぼ100%できました。最初はメール送信できませんでしたが、こういう場合は後ほど設定するメールアドレスとパスワードを疑うとだいたい解決します。
$ sudo apt install postfix libsasl2-modules mailutils
インストール時にメールサーバ設定形式を聞かれますが、私は「インターネットサイト」を選択しました。(設定なしでもいいかもしれません)
インストール中にドメインを聞かれます。/etc/hostnameで設定した値.localを自分は設定しました。
続いてmain.cfの設定です。あらかじめ元あるmain.cfをコピーしておきます。
$ cd /etc/postfix
$ sudo cp main.cf main.cf.cp
ファイルの中身を編集します。
#relayhost =
relayhost = [smtp.gmail.com]:587
inet_interfaces = loopback-only
#inet_protocols = all
inet_protocols = ipv4
さらにファイル後部に追記します。
#追記
smtp_sasl_auth_enable = yes
smtp_tls_security_level = encrypt
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
以上でmain.cfの編集は終了です。続いてリレーするgmailのアドレスとパスワードの設定を行います。
/etc/postfix/sasl/以下にsasl_passwdを新規作成します。
$ cd /etc/postfix/sasl/
$ sudo nano sasl_passwd
[smtp.gmail.com]:587 (取得済みgmailアドレス):(取得済みアプリパスワードの値)
ファイルを編集したら、sasl_passwd.dbを作成します。
$ sudo postmap /etc/postfix/sasl/sasl_passwd
このコマンド実行後に同じディレクトリにsasl_passwd.dbが作成されたことを確認してください。
さらにaliasesを設定します。
$ cd /etc
$ sudo nano aliases
root:(取得済みgmailアドレス)
aliasesを編集したらaliases.dbを作成します。
$ sudo newaliases
ここまで設定したらサービスを再起動します。
sudo systemctl restart postfix
メールを送信できるかテストします。
$ mail (送信したいメールアドレス)
Cc:(空欄でもよい)
Subject:(なんか入れる)
本文
.
[ctr]+d
最後尾に.を入れないとメールが送れません。
これでメールを送信すると、取得済みgmailアドレスが差出人のメールが送信されます。
メールが送れない場合、今回の設定の経験上でいえることは
- sasl_passwdの内容が間違っている。
- sasl_passwdの内容を変更した後にsudo postmap /etc/postfix/sasl/sasl_passwd していない
- newaliasesの内容が間違っている
- newaliasesの内容を変更した後にsudo newaliasesしていない
のパターンでした。
この日の作業はここまで。
念のためこのあたりでWin32DiskImagerでmicroSDのイメージをコピーしておくことをお勧めします。
関連ページ