test-mailsプロジェクトでは、より簡単に網羅的なメールシステムのテストを できるように、できるだけ多くのテストメールを共有したいと考えています!
milter managerの開発時や導入時に使ったテストメールは積極的にこの test-mailsプロジェクトで共有していきます。これだけでも有用なテストメー ル集になると思いますが、さらに有用なテストメール集にするために、milter managerプロジェクトに関係なくテストメールの収集に協力してくれる人を歓迎 します!
協力方法の流れは以下の通りです。
- 自分が持っているテストメールからヒミツの情報を除く
- テストメールをtest-mailsプロジェクトに送る
以下、詳細です。
ヒミツの情報とは、例えば、個人情報や公開していない組織内部の情報などの ことです。
test-mailsプロジェクトではテストメールを広く誰でも自由に使えるようにし ます。テストメールの中にヒミツの情報が含まれていると、テストメールと一 緒にヒミツの情報も広まってしまいます。こうなると、テストメールを提供し てくれた人に不利益があるかもしれません。test-mailsプロジェクトではテス トメールを使いたい人に有益なテストメールを提供したいのはもちろんですが、 それによってテストメール提供者に不利益が起こることも同じくらい避けたい ことです。なぜなら、長期的に見ると、テストメールの提供が少なくなると、 その分、テストメールを使いたい人へ提供できる有益なテストメールも少なく なり、test-mailsプロジェクトが実現したい「より簡単に網羅的なメールシス テムのテストをできるようにする」目的から離れていくからです。
このため、テストメールを提供する人にとって不利益にならないようにテスト メールからヒミツの情報を除いた状態での提供をおねがいします。具体的には 以下のようにしてヒミツの情報を除いてください。
- メールアドレスのドメインはテスト用のドメイン名に変換してください。
- 実名は「山田 太郎」や「Taro Yamada」などのような「よく使われる偽名」に変換してください。
- TODO: 他にも実際にやってみて見つかったことを追記すること
RFC 2602に予約済みのドメイン名に ついて説明されています。ここにあるドメイン名は実際に使っている組織がい ないためテストに使うドメイン名として適切です。
テスト用のメールアドレスのドメイン名には以下を使ってください。
- example.com
- example.net
- example.org
不正なドメイン名を示す場合は「invalid.example.net」や「.invalid」トップ レベルドメインを使って「example.invalid」などとしてください。
実名は「山田 太郎」や「Taro Yamada」などのような「よく使われる偽名」に 変換してください。もし、偽名のような実名の場合は、念のため、別のよく使 われる偽名に変換してください。
以上がテストメールを作るときに気をつけて欲しいことです。
テストメールができたらtest-mailsプロジェクトにテストメールを送ってくだ さい。テストメールを送る方法はいくつかあります。
- GitHubのアカウントを持っている場合: milter-manager/test-mailsプロジェクトにpull requestを送る。
- milter managerのメーリングリストに参加している場合: milter-manager-users-jaメーリングリストにテストメールを送る。
- テストメールにヒミツの情報が含まれていないか不安な場合: [email protected]にテストメールを送る。
それぞれの送り方について説明します。
GitHubのアカウントを持っている場合はdraft/ディレクトリにテストメールを コミットしてpull requestを送ってください。pull requestの説明にはどのよ うなテストメールかの説明を書いてください。test-mailsプロジェクトが提供 するテストメールは分類済みですが、テストメールを送るときは分類しない状 態で送って大丈夫です。テストメールの説明などを参考にtest-mailsプロジェ クトが分類します。
FIXME: この説明だと非プログラマーにはまだわかりづらいかも。
(1) https://github.com/milter-manager/test-mails をウェブブラウザで開きます。
(2) 右上に「Fork」ボタンがあるのでクリックして自分のアカウントに test-mails プロジェクトのリポジトリをフォークします。
(3) フォークしたリポジトリを git clone します。
$ git clone [email protected]:<アカウント名>/test-mails.git
(4) Git の設定をします。
$ cd test-mails
$ git config --add user.name "Your name"
$ git config --add user.email "[email protected]"
ここで設定した名前とメールアドレスは、コミットログに残るので公開して差し支えないものを指定してください。
(5) upstream を設定します。
test-mails プロジェクトでの変更に追従するための設定をしておきます。
$ git remote add upstream https://github.com/milter-manager/test-mails.git
test-mails プロジェクトでの変更に追従する場合は、以下のコマンドを実行します。
$ git fetch --all
$ git checkout master
$ git rebase upstream/master
(6) 新しいテストメールを追加します。
まず、新しいブランチを作成します。追加するメールの内容がわかるような名前にしておくとあとで少しだけ便利です。
$ git checkout -b add-xxx upstream/master
メールを追加してコミットする。たくさんある場合はディレクトリを作成してその中にメールを入れていただけると、作業しやすいです。
$ mkdir -p draft/subject
$ cp /path/to/your/mails/*.eml draft/subject/
$ git add draft/subject/*.eml
markdown 記法で説明を書きます。説明を書いていただければ、分類作業時の参考になります。 なお、取り込み時に修正するので記法は markdown 記法でなくても構いません。
$ vi draft/subject/README.md
$ git add draft/subject/README.md
$ git commit -m "Add README.md"
変更を git push
する。
$ git push -u origin add-xxx
(7) Pull Request をします。
https://github.com/<アカウント名/test-mails をウェブブラウザで開きます。
そうすると「(6)で作成したブランチに対応する Pull Request を送るためのボタン」が追加されているのでそれをクリックします。
メッセージ等は、編集せずにそのまま Submit してもらって大丈夫です。(6)でREADME.md を作成しなかった場合は、ここで説明を書いていただけると、分類作業時の参考になります。
Pull Request が登録されたら、関係者に通知が飛ぶのでしばらく待てば、送信された Pull Request は取り込まれます。
milter-manager-users-jaメーリングリスト に参加している場合はこのメーリングリストにテストメールを「アーカイブし た状態」で添付ファイルとして送ってください。「アーカイブした状態」とい うのは「tar」や「zip」形式にしているということです。
どうしてアーカイブした状態にしてもらうかというと、改行コードやエンコー ディングが変換されることを防ぐためです。テストメールそのものを添付する と改行コードやエンコーディングが自動で変換されてしまって、元のテストメー ルから変わってしまう可能性があります。そのため、アーカイブして元のテス トメールが変わらないようにします。
メーリングリストに送るメールの本文にはテストメールの説明を書いてくださ い。この説明などを参考にしてtest-mailsプロジェクトでテストメールを分類 します。
自分ではちゃんとテストメールにヒミツの情報を除いたと思ったつもりでもま だ不安ということはあるでしょう。その場合は[email protected]へテ ストメールを送ってください。前述のGitHubやメーリングリストを使う方法で はすぐにテストメールが世界中からアクセスできる状態になりますが、 [email protected]に送った場合は非公開です。このメールアドレスに 送ってもらえれば、test-mailsプロジェクトがヒミツの情報がないか追加で確 認します。もし、まだヒミツの情報があった場合はここでヒミツの情報を除い てからtest-mailsプロジェクトのテストメール集に加えて広く自由に使えるよ うにします。
もし、ヒミツの情報がまだ入っていないか不安な場合は [email protected]に送って確認してもらってください!
以上がテストメールを送る方法です。
もし、この説明でピンとこないところがあった場合はどこがわかりにくかった かを Issueとして登録 して教えてください。test-mailsプロジェクトはこのドキュメントをできるだ けわかりやすくして、より多くのテストメールを提供者の役に立つものにした いと思っています。
ご協力、よろしくおねがいします!