メールの差出人の設定について

# 概要
以前システム導入したお客様から「通知したメールの差出人はどこで設定できるのか」という質問に対して、仕様確認して回答したことがありましたが、改めてプリザンターの通知機能「メール」における差出人の仕様についてまとめました。

# 結論
時間のない方はこの章だけ見てください。
1. SupportFromは設定しよう！条件によってはアプリケーションエラーが発生します。
1. 設定の優先順は ①FixedFrom > ②ユーザメールアドレス > ③SupportFrom です。
1. リマインダーのみ優先順は ①FixedFrom > ②リマインダー設定画面の「差出人」となります。

# テスト環境
メール通知の動作テストは誤送信する可能性がありますので注意が必要です。今回は「[smtp4dev](https://github.com/rnwood/smtp4dev)」を利用してダミーのSMTPサーバを準備しました。smtp4devの導入は既に情報が多くありますので、ここでは簡単に説明します。
1. smtp4devのGitHubから最新のモジュールをダウンロードします。今回はWindows版モジュールをダウンロードします。
![github-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314422/080aaf6f-d049-4680-ac28-de02563f8d45.png)
![github-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314422/bfbbf33d-ca58-8086-0f58-695c3fbad5c3.png)
1. ダウンロードしたzipファイルを適当な場所に解凍します。
1. Rnwood.Smtp4dev.exeを実行します。
![folder-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314422/1840d85a-37b2-d0f4-ad23-74ba04682cef.png)
1. 起動するとターミナルが起動します。
![run.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314422/dcfddd3d-68c8-b3e3-d96b-836057dbd327.png)
1. ブラウザで http://localhost:5000 に接続してメールの内容が確認できます。
![run-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314422/2b98526b-8398-60b4-cf82-762dcf08eaff.png)
smtp4devの準備ができたら、プリザンターのパラメータファイル「Mail.json」をsmtp4devを利用するように設定します。今回はプリザンターと同じPC上にsmtp4devをセットアップしたので、"SmtpHost"を「localhost」としました。"SmtpPort"は25です。

# 差出人の設定：Mail.json
パラメータファイル[Mail.json](https://pleasanter.org/manual/mail.json)で差出人の設定を行います。設定内容でメールの差出人がどのようになるかを確認しました。

## 通知
プリザンターの[通知機能](https://pleasanter.org/manual/table-management-notification)でメール送信した際の差出人は以下のようになります。  

* FixedFromが設定済の場合、差出人はFixedFromになる。
* FiexdFromが未設定の場合、差出人はユーザメールアドレスになる。
* FiexdFromもユーザメールアドレスも未設定の場合、差出人はSupportFromになる。
* SupportFrom、FixedFrom、ユーザメールアドレスすべて未設定の場合、アプリケーションエラーとなる。
* FixedFromが差出人となる場合、Outgoingmails（メール送信履歴）はユーザメールアドレスまたはSupportFromが記録される。

|SupportFrom|FixedFrom|ユーザメールアドレス|送信メールの差出人|備考|（参考）OutgoingmailsのFrom|
|:---|:---|:---|:---|:---|:---|
|有|無|無|SupportFrom||SupportFrom|
|有|無|有|ユーザメールアドレス||ユーザメールアドレス|
|有|有|無|FixedFrom||SupportFrom|
|有|有|有|FixedFrom||ユーザメールアドレス|
|無|無|無|－|アプリケーションエラー|－|
|無|無|有|ユーザメールアドレス||ユーザメールアドレス|
|無|有|無|－|アプリケーションエラー|－|
|無|有|有|FixedFrom||ユーザメールアドレス|


## プロセスによる通知
プリザンターの[プロセス機能](https://pleasanter.org/manual/process)による通知でメール送信した際の差出人は以下のようになります。結果は通知と同じです。

* FixedFromが設定済の場合、差出人はFixedFromになる。
* FiexdFromが未設定の場合、差出人はユーザメールアドレスになる。
* FiexdFromもユーザメールアドレスも未設定の場合、差出人はSupportFromになる。
* SupportFrom、FixedFrom、ユーザメールアドレスすべて未設定の場合、アプリケーションエラーとなる。
* FixedFromが差出人となる場合、Outgoingmails（メール送信履歴）はユーザメールアドレスまたはSupportFromが記録される。

|SupportFrom|FixedFrom|ユーザメールアドレス|送信メールの差出人|備考|（参考）OutgoingmailsのFrom|
|:---|:---|:---|:---|:---|:---|
|有|無|無|SupportFrom||SupportFrom|
|有|無|有|ユーザメールアドレス||ユーザメールアドレス|
|有|有|無|FixedFrom||SupportFrom|
|有|有|有|FixedFrom||ユーザメールアドレス|
|無|無|無|－|アプリケーションエラー|－|
|無|無|有|ユーザメールアドレス||ユーザメールアドレス|
|無|有|無|－|アプリケーションエラー|－|
|無|有|有|FixedFrom||ユーザメールアドレス|

## メール
プリザンターの[メール機能](https://pleasanter.org/manual/table-management-mail)による通知でメール送信した際の差出人は以下のようになります。

* ユーザメールアドレスが未設定の場合、メールアドレス未設定エラーとなる。（メール作成ダイアログが表示できない）
* FixedFromが設定済の場合、差出人はFixedFromになる。
* FiexdFromが未設定の場合、差出人はユーザメールアドレスになる。
* SupportFromの設定内容は無視される。
* FixedFromが差出人となる場合、Outgoingmails（メール送信履歴）はユーザメールアドレスが記録される。

|SupportFrom|FixedFrom|ユーザメールアドレス|送信メールの差出人|備考|（参考）OutgoingmailsのFrom|
|:---|:---|:---|:---|:---|:---|
|有|無|無|－|メールアドレス未設定のエラー|－|
|有|無|有|ユーザメールアドレス||ユーザメールアドレス|
|有|有|無|－|メールアドレス未設定のエラー|－|
|有|有|有|FixedFrom||ユーザメールアドレス|
|無|無|無|－|メールアドレス未設定のエラー|－|
|無|無|有|ユーザメールアドレス||ユーザメールアドレス|
|無|有|無|－|メールアドレス未設定のエラー|－|
|無|有|有|FixedFrom||ユーザメールアドレス|

## リマインダー
プリザンターの[リマインダ機能](https://pleasanter.org/manual/table-management-reminder)による通知でメール送信した際の差出人は以下のようになります。

* FixedFromが設定済の場合、差出人はFixedFromになる。
* FiexdFromが未設定の場合、差出人は詳細画面の「差出人」項目で設定したメールアドレスになる。
* FixedFromが設定済みの場合、リマインダー詳細設定画面上の「差出人」欄は非表示となり、設定できない。（図1,2を参照）
* SupportFromの設定内容は無視される。
* FixedFromが差出人となる場合であっても、Outgoingmails（メール送信履歴）にはFixedFromが記録される。
* AllowFromの設定内容は無視される。（FixedFromまたは「差出人」のどちらかがメールの差出人となる）

|SupportFrom|FixedFrom|ユーザメールアドレス|送信メールの差出人|備考|（参考）OutgoingmailsのFrom|
|:---|:---|:---|:---|:---|:---|
|有|無|無|「差出人」||「差出人」|
|有|無|有|「差出人」||「差出人」|
|有|有|無|FixedFrom|「差出人」項目は非表示|FixedFrom|
|有|有|有|FixedFrom|「差出人」項目は非表示|FixedFrom|
|無|無|無|「差出人」||「差出人」|
|無|無|有|「差出人」||「差出人」|
|無|有|無|FixedFrom|「差出人」項目は非表示|FixedFrom|
|無|有|有|FixedFrom|「差出人」項目は非表示|FixedFrom|

* 図１．FixedFromが未設定の場合
![remind-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314422/095948dd-2550-6f92-3103-03178dc6d205.png)

* 図２．FixedFromが設定済みの場合
![remind-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314422/2fe55787-520a-2d04-2d19-8f941a4f9b4b.png)

# まとめ
メール送信時の差出人について整理ができました。オンラインマニュアルで説明不足の点はこの内容を受け随時更新し、より良い製品にしていきます。
引き続きプリザンターをよろしくお願いします！