RaspberryPi からメール送信(続き)

「Gmail サーバ を使って Raspberry Pi から メール送信 (「安全性の低いアプリの許可」を使う方法)」
https://qiita.com/nanbuwks/items/28e444c7c31cd5e2a189

の続きです。

一旦上記で確認できたら、より安全性の高い方法に移行しなければいけません。
今回は、Gmail ではないメールサーバを確保し、それに設定し直しました。

# 環境

sakura のレンタルサーバを使いました。

サーバホスト名: example.sakura.ne.jp
メール送信プロトコル: smtp
プロトコル使用ポート: TCP587
送信に使用するログオンID: anyone@example.com
送信に使用するログオンポスワード:hogehoge
通信の暗号化: なし


# 設定

既に一旦 gmail で設定が終わっていますが、そのような環境だとサーバ情報とログオン情報だけを変更すればOKです。

## サーバ情報を変更する

```

sudo dpkg-reconfigure exim4-config

```

を実行し、以下のところだけを変更する。

```
 
┌────────────────────────────────────────────────────────────────────┤ Mail Server configuration ├─────────────────────────────────────────────────────────────────────┐
  │ Please enter the IP address or the host name of a mail server that this system should use as outgoing smarthost. If the smarthost only accepts your mail on a port   │ 
  │ different from TCP/25, append two colons and the port number (for example smarthost.example::587 or 192.168.254.254::2525). Colons in IPv6 addresses need to be      │ 
  │ doubled.                                                                                                                                                             │ 
  │                                                                                                                                                                      │ 
  │ If the smarthost requires authentication, please refer to the Debian-specific README files in /usr/share/doc/exim4-base for notes about setting up SMTP              │ 
  │ authentication.                                                                                                                                                      │ 
  │                                                                                                                                                                      │ 
  │ IP address or host name of the outgoing smarthost:                                                                                                                   │ 
  │                                                                                                                                                                      │ 
  │ example.sakura.ne.jp::587________________________________________________________________________________________________________________________________________ │ 
  │                                                                                                                                                                      │ 
  │                                                  <Ok>                                                      <Cancel>                                                  │ 
  │                                                                                                                                                                      │ 
  └───────────────────────────────────────────────────────────────────────────────────
```

## ログオン情報を変更する

/etc/exim4/passwd.client に追加する

```

example.sakura.ne.jp:anyone@example.com:hogehoge
```

というように、サーバホスト名:ログオンID:ログオンパスワードを羅列します。

## 反映する

```

sudo update-exim4.conf
```

# テスト

コマンドラインで送ってみます。anyone@gmail.com にメールが送れるかな？

```

$ echo "Test4" | mail -s "test4" anyone@gmail.com

```

とすると、迷惑メールに入ってきました。更に、エラーになっています。

```
Mail delivery failed: returning message to sender
迷惑メール
x
Mail Delivery System Mailer-Daemon@example.com www4149.sakura.ne.jp 経由
15:20 (34 分前)
￼￼
To root
￼
このメールが [迷惑メール] に振り分けられた理由 あなたのメールアドレスになりすました偽装メールへの自動返信のようです。
￼迷惑メールでないことを報告￼フィッシングを報告
英語
日本語
   
メッセージを翻訳
次の言語で無効にする: 英語
This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  anyone@gmail.com
    host example.sakura.ne.jp [555.555.555.555]
    SMTP error from remote mail server after pipelined MAIL FROM:<root@raspberrypi> SIZE=1410:
    553 5.1.8 <root@raspberrypi>... Domain of sender address root@raspberrypi does not exist
```

どうやら、送信元が root@raspberrypi になっているためにエラーになったようです。

## 送信元を指定してテスト

「mail コマンドで from を変更する方法まとめ - akishin999の日記 」
http://akishin.hatenablog.jp/entry/20121029/1351470238
によると、mailコマンドで送信元を指定するには、環境によって方法が違うらしいです。

試しに

```

 echo "Test4" | mail -s "test4" -aFrom:anyone@example.com anyone@gmail.com
```

としたら無事送信できて、gmail で確認できました。

# メールキューの削除

設定変更している最中に溜まったメールキューがあります。

```

tail /var/log/exim4/mainlog

・
・
・
2020-04-15 11:24:54 1jO4au-0003eV-3Y Message is frozen
2020-04-15 11:24:54 1jOITi-0006A2-Bg Message is frozen
2020-04-15 11:24:54 End queue run: pid=28082
```

特に必要ないので消しておきます。


「以前の情報 - 計算機と戯れる日々」
https://n9d.hatenadiary.org/entry/20031013/1142572952

を参考にしました。debian では、update-exim4.conf.conf で設定するのかな？

```

$ sudo vim /etc/exim4/update-exim4.conf.conf 
```

として、一番最後に以下の行を追加しました。

```

timeout_frozen_after='7d'
```

として、

```


sudo update-exim4.conf

```

で反映。