(2011-12-16 転記・2020-08-13 修正・転記)
★★自宅のサーバをRaspberry Pi3に変更したので、内容を見直しました。
昨日(2011-12-15)、長年愛用したサーバが壊れて、起動しなくなってしまいました。
慌てて代替機をサーバに仕立てようと試みているところです。
さて、サーバがメール送信の機能を持つと、エラーの発生や定期的な監視等で異常があった際にメール送信で知らせることができて便利です。
ここでは、debianサーバにexim4を設定し、gmailの送信機能を利用して、メールを送る方法について記載します。
なお、筆者の試した環境は以下のとおりです。
os: debian squeeze raspbian stretch
kernel: 2.6.32-5 4.9.59-v7
exim4: 4.72-6+sueeze2 4.89
筆者は、debianを利用しておりますが、セキュリティホールへの対応が速く、堅牢で、安定性に掛けてはもっとも優れたDistributionのひとつだと思います。
ここでは、exim4 の設定を行います。
デフォルトでインストール済みだと思いますが、インストールしていない場合は、以下のコマンドでインストールします。
$ sudo apt install exim4
設定に関しては、以下のサイトを参考にさせていただきました。多謝
exim4のインストール後、以下のとおり設定します。
なお、ここでは、スマートホストとして、gmailを設定します。
$ sudo dpkg-reconfigure exim4-config
* メール設定の一般的なタイプ ->スマートホストでメール送信: SMTP または fetchmail で受信する
* システムメール名 ->localhost
* 入力側 SMTP 接続をリスンする IP アドレス ->127.0.0.1
* メールを受け取るその他の宛先 ->未入力
* メールをリレーするマシン ->未入力
* 送出スマートホストのIPアドレスまたはホスト名 ->smtp.gmail.com::587
★ gmail.com の後の「コロンが2つあること」に注意してください ★
* 送出するメールでローカルメール名を隠しますか ->いいえ
* DNS クエリの数を最小限に留めますか (ダイヤルオンデマンド) ->いいえ
* ローカルメールの配送方式 ->/var/mail内のmbox形式
* 設定を小さなファイルに分割しますか ->いいえ
上記の設定が面倒なときは、直接編集しても良いようです。
dc_eximconfig_configtype='smarthost'
dc_other_hostnames='raspberry'
dc_local_interfaces='127.0.0.1 ; ::1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.gmail.com::587'
CFILEMODE='644'
dc_use_split_config=''
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
続いて、/etc/exim4/passwd.client を編集します。
$ sudo vi /etc/exim4/passwd.client
gmail-smtp.l.google.com:ユーザ名@gmail.com:パスワード
*.google.com:ユーザ名@gmail.com:パスワード
smtp.gmail.com:ユーザ名@gmail.com:パスワード
上記の設定が終わったら、以下のコマンドで設定を反映させます。
$ sudo update-exim4.conf
mailコマンドで、以下のように入力して、正常に動作するか確認してください。
mail -s "mail test" 送信先アドレス
メールのテストだよ
.
Cc:
mail本文の終了は、Ctrl+Dです。
無事に送信できたら、exim4 の設定は完了です。
せっかくdebianに設定したので、シェル・スクリプト等から呼び出すときのコマンド例を挙げておきます。
シェルスクリプト等からの実行には、 enter等の入力しない非対話的な動作に必要です。
通常のテキストファイルの送信
$ mail -s title メールアドレス < 送信したい.txt
ファイルを添付して送信(エンコードして送信)
$ uuencode moto.html convert.html | mail -s title メールアドレス
なお、uuencodeがインストールされていない場合は、以下のコマンドでインストールしてください。
$ sudo aptitude install sharutils
mailコマンド自体の操作については、manコマンドで調べてください(手抜き…汗)。
まだ、まだ、続く…かも…