(2011-12-16 初稿 - 2021-05-23 追記)
はじめに
★★自宅のサーバをRaspberry Pi3に変更したので、内容を見直した(2018-02-03)。
サーバがメール送信の機能を持つと、エラーの発生や定期的な監視等で異常があった際にメール送信で知らせることができて便利。
ここでは、debianまたはRaspberry Piのサーバにexim4を設定し、gmailの送信機能を利用して、メールを送る方法について記載する。
なお、筆者の試した環境は以下のとおり。
os: debian squeeze raspbian stretch kernel: 2.6.32-5 4.9.59-v7 exim4: 4.72-6+sueeze2 4.89
筆者は、デスクトップにはdebianを利用しているが、サーバには電気代を考えてRaspberry Piを利用している。
debianは、セキュリティホールへの対応が速く、堅牢で、安定性に掛けてはもっとも優れたDistributionのひとつだと思う。
exim4 の設定
ここでは、exim4 の設定を行う。
デフォルトでインストール済みだと思うが、インストールしていない場合は、以下のコマンドでインストールする。
$ sudo aptitude 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 を編集する。
(2021-05-23 追記)
以下の設定でメールを送信する場合は、Googleアカウントで「安全性の低いアプリのアクセス」で「安全性の低いアプリの許可: 有効」をONにしないとメールが送れない。
(追記 終了)
$ sudo vi /etc/exim4/passwd.client gmail-smtp.l.google.com:ユーザ名@gmail.com:パスワード *.google.com:ユーザ名@gmail.com:パスワード smtp.gmail.com:ユーザ名@gmail.com:パスワード
(2021-05-23 追記)
2段階パスワードでの設定は以下のページにありました。多謝
上記サイトを参考にGoogleアカウントの他に、アプリのパスワードも取得する。
取得した場合の設定は、以下のとおり。
$ sudo vi /etc/exim4/passwd.client gmail-smtp.l.google.com:ユーザ名@gmail.com:Googleパスワード:アプリパスワード *.google.com:ユーザ名@gmail.com:Googleパスワード:アプリパスワード smtp.gmail.com:ユーザ名@gmail.com:Googleパスワード:アプリパスワード
(追記 終了)
上記の設定が終わったら、以下のコマンドで設定を反映させる。
$ sudo update-exim4.conf
テストする
mailコマンドで、以下のように入力して、正常に動作するか確認する。
mail -s "mail test" 送信先アドレス メールのテストだよ . Cc:
mail本文の終了は、Ctrl+D。
無事に送信できたら、exim4 の設定は完了。
Tips
せっかく設定したので、シェル・スクリプト等から呼び出すときのコマンド例を挙げておく。
シェルスクリプト等からの実行には、 enter等の入力しない非対話的な動作が必要。
通常のテキストファイルの送信
$ mail -s title メールアドレス < 送信したい.txt
ファイルを添付して送信(エンコードして送信)
$ uuencode moto.html convert.html | mail -s title メールアドレス
なお、uuencodeがインストールされていない場合は、以下のコマンドでインストールする。
$ sudo apt install sharutils
mailコマンド自体の操作については、manコマンドで調べてね(手抜き…汗)。
(2021-05-23 追記)
メールが送信できないときは、以下にlogが出力されるので調べてね。
$ sudo tail -f /var/log/exim4/maillog
まだ、まだ、続く…かも…