先日 Linux (Raspberry pi) で G-Mail を送信させる。という記事を書いたのですが、思った様に行かず、色々と再挑戦していました。
その後に ssmtp は使わなくても、Raspberry pi の標準である exim4 で出来ることが分かったのでそちらで設定したのですが、色々とハマったのできちんと整理しておこうと思います。
で、ここで分かったことの一つに GUI は使わないからと、安易に jessie lite を使ってはいけないと言う事です。
単に GUI 関連のユーティリティなどがインストールされていないだけではなく、かなりの機能がインストールされていない様です。
あまり悩みたくない方は、多少データ領域を喰いますが、素直に通常盤の jessie や NOOBS をインストールされた方が良いでしょう。
ではまずは今回の目標を。
1.外部へのメールは送信だけで、少なくとも今回は外部からのメール受信は設定しない。
2.外部へのメールは G-Mail のメールサーバーを利用する。
3.外部へのメールは発信者は G-Mail のメールアドレスとする。
4.サーバーの内部ユーザへのメールはひとまず現状通り root のメールに集めるが、それを通常利用しているユーザにリレーし、そこから外部へ送信する。
出来れば、どの内部ユーザに向けて送信したメールかわかると嬉しい。
先ずは、メールコマンドが使える様にします。
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
・
・
・
bsd-mailx (8.1.2-0.20141216cvs-2) を設定しています ...update-alternatives: /usr/bin/mailx (mailx) を提供するために自動モードで /usr/bin/bsd-mailx を使います
libc-bin (2.19-18+deb8u7) のトリガを処理しています ...
systemd (215-17+deb8u6) のトリガを処理しています ...
$
で、次がメール関連のユーティリティ
$ sudo apt-get install mailutils
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
・
・
・
update-alternatives: /usr/bin/readmsg (readmsg) を提供するために自動モードで /usr/bin/readmsg.mailutils を使います
update-alternatives: /usr/bin/dotlock (dotlock) を提供するために自動モードで /usr/bin/dotlock.mailutils を使います
libc-bin (2.19-18+deb8u7) のトリガを処理しています ...
後は設定になります。
$ sudo dpkg-reconfigure exim4-config
mail sent by smarthost; received via SMTP or fetchmail
次がシステムのドメイン名ですので、これはサーバーの名称が入力されているはずですのでそのまま 「.local」を追加してリターンしてください。
raspberrypi.local
で次がローカルのアドレスですのでそのままリターンで大丈夫。
127.0.0.1 ; ::1
「メールを受け取るその他の宛先:」を
raspberrypi.local
「メールをリレーするマシン:」は空欄のままリターン。
そして、送信に利用する Google のサーバーの指定ですが、「::」とコロンが二つ必要です。注意してください。
smtp.gmail.com::587
その後も二つ続けて「No」を選択。
その次がメールボックスの選択ですが素直に
mbox format in /var/mail/
を選択すれば良いでしょう。
次は「No」で良いです。
で設定は終了します。
その後に「/etc/exim4/passwd.client」のファイルに以下を追記します。
gmail-smtp.l.google.com:あなたのメール@gmail.com:アプリケーションパスワード
*.google.com:あなたのメール@gmail.com:アプリケーションパスワード
smtp.gmail.com:あなたのメール@gmail.com:アプリケーションパスワード
これでひとまずは送信できるはずです。
$ date | mail -s "試験メール" あなたのメール@gmail.com
あなたの G-Mail にメールが届けがほぼ完成。
後は「/etc/aliases」が以下の様になっていると思うので、最後の2行を追記しましょう。
ユーザ「pi」はあなたが利用しているユーザIDに置き換えてください。
# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
それぞれのメールが上記の「あなたが転送先に指定したいメールアドレス」に転送されます。
メール送信者のメールアドレスは /etc/exim4/passwd.client で指定したメールです。
で、送信先が root@ホスト名.local となり、BCC: として /etc/aliases で指定した転送先にメールが転送されます。
アプリ用のパスワードを取得しましょう。
既に Google のメールをお持ちでそれを利用する方もアプリ用のパスワードを取得しておく必要があります。
G-Mail の取得方は見ればわかるレベルですので割愛します。
アプリ用のパスワードは、G-Mail にログインしてアカウント情報から「ログインとセキュリティ」を選択します。
そして右下の「アプリパスワード」に進みます。
で、「生成」ボタンを押すと、
となって、アプリ用のパスワードが生成されるので、これをひとまずメモしておきます。
その後に ssmtp は使わなくても、Raspberry pi の標準である exim4 で出来ることが分かったのでそちらで設定したのですが、色々とハマったのできちんと整理しておこうと思います。
で、ここで分かったことの一つに GUI は使わないからと、安易に jessie lite を使ってはいけないと言う事です。
単に GUI 関連のユーティリティなどがインストールされていないだけではなく、かなりの機能がインストールされていない様です。
あまり悩みたくない方は、多少データ領域を喰いますが、素直に通常盤の jessie や NOOBS をインストールされた方が良いでしょう。
ではまずは今回の目標を。
1.外部へのメールは送信だけで、少なくとも今回は外部からのメール受信は設定しない。
2.外部へのメールは G-Mail のメールサーバーを利用する。
3.外部へのメールは発信者は G-Mail のメールアドレスとする。
4.サーバーの内部ユーザへのメールはひとまず現状通り root のメールに集めるが、それを通常利用しているユーザにリレーし、そこから外部へ送信する。
出来れば、どの内部ユーザに向けて送信したメールかわかると嬉しい。
先ずは、メールコマンドが使える様にします。
$ sudo apt-get install bsd-mailx
パッケージリストを読み込んでいます... 完了依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
・
・
・
bsd-mailx (8.1.2-0.20141216cvs-2) を設定しています ...update-alternatives: /usr/bin/mailx (mailx) を提供するために自動モードで /usr/bin/bsd-mailx を使います
libc-bin (2.19-18+deb8u7) のトリガを処理しています ...
systemd (215-17+deb8u6) のトリガを処理しています ...
$
で、次がメール関連のユーティリティ
$ sudo apt-get install mailutils
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
・
・
・
update-alternatives: /usr/bin/readmsg (readmsg) を提供するために自動モードで /usr/bin/readmsg.mailutils を使います
update-alternatives: /usr/bin/dotlock (dotlock) を提供するために自動モードで /usr/bin/dotlock.mailutils を使います
libc-bin (2.19-18+deb8u7) のトリガを処理しています ...
$ sudo dpkg-reconfigure exim4-config
最初の画面が MTAの使い方の選択ですが、以下のものを選択してください。
次がシステムのドメイン名ですので、これはサーバーの名称が入力されているはずですので
raspberrypi.local
で次がローカルのアドレスですのでそのままリターンで大丈夫。
127.0.0.1 ; ::1
「メールを受け取るその他の宛先:」を
raspberrypi.local
「メールをリレーするマシン:」は空欄のままリターン。
そして、送信に利用する Google のサーバーの指定ですが、「::」とコロンが二つ必要です。注意してください。
smtp.gmail.com::587
その後も二つ続けて「No」を選択。
その次がメールボックスの選択ですが素直に
mbox format in /var/mail/
を選択すれば良いでしょう。
次は「No」で良いです。
root と postmaster のメール受信者:は「pi」を指定
その後に「/etc/exim4/passwd.client」のファイルに以下を追記します。
gmail-smtp.l.google.com:あなたのメール@gmail.com:アプリケーションパスワード
*.google.com:あなたのメール@gmail.com:アプリケーションパスワード
smtp.gmail.com:あなたのメール@gmail.com:アプリケーションパスワード
送信に使う G-Mail のメールアドレスとそのアプリケーションパスワードです。
Google の アプリケーションパスワードは後ろを参照してください。
変更を反映させます。
$ sudo update-exim4.conf
これでひとまずは送信できるはずです。
$ date | mail -s "試験メール" あなたのメール@gmail.com
あなたの G-Mail にメールが届けがほぼ完成。
後は「/etc/aliases」が以下の様になっていると思うので、最後の2行を追記しましょう。
ユーザ「pi」はあなたが利用しているユーザIDに置き換えてください。
# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: pi
pi: あなたが転送先に指定したいメールアドレス
で同じ様に試験として
$ date | mail -s "試験メール1" root
$ date | mail -s "試験メール2" pi
それぞれのメールが上記の「あなたが転送先に指定したいメールアドレス」に転送されます。
メール送信者のメールアドレスは /etc/exim4/passwd.client で指定したメールです。
で、送信先が root@ホスト名.local となり、BCC: として /etc/aliases で指定した転送先にメールが転送されます。
アプリ用のパスワードを取得しましょう。
既に Google のメールをお持ちでそれを利用する方もアプリ用のパスワードを取得しておく必要があります。
G-Mail の取得方は見ればわかるレベルですので割愛します。
アプリ用のパスワードは、G-Mail にログインしてアカウント情報から「ログインとセキュリティ」を選択します。
そして右下の「アプリパスワード」に進みます。
で、「生成」ボタンを押すと、
となって、アプリ用のパスワードが生成されるので、これをひとまずメモしておきます。
コメント
コメントを投稿