MailHogでハマってしまったことについて

# 目次
[1.発生した問題・エラー](#1-発生している問題・エラー)
[2.解決に至るまで](#2-解決に至るまで)
[3.原因](#3-原因)
[4.まとめ](#4-まとめ)

しょうもないところでハマってしまったのでメモです。
結論から言うと、 **開発環境でメール本文を確かめるときにはmailhogで全て確認するのではなく、実在するメールアドレスに送信して確かめよう、** という話です。

### バージョン
・mailhog 1.0.1

## 発生した問題・エラー
開発環境で、メールが正しく送れているか、文面は正しいかの確認を行なった時に、mailhogで確認をしていました。
その際に、bladeファイルで改行を設定している箇所が、mailhogの表示では正しく反映されないことがありハマってしまいました。

問題となっているメールの本文は、「quoted-printable」でエンコードされています。

https://ja.m.wikipedia.org/wiki/Quoted-printable

また、デコード前の本文は下記のようになっています。
```sample.blade.php
ご不明点は「株式会社AAA カスタマーサポート」へお問い合わせください。

株式会社AAA カスタマーサポート
受付時間：10:00～19:00（年中無休）
```
```お問い合わせください。```の後には改行があります。

このメールがmailhogの「quoted-printable」でエンコードされると

```言語:mailhog/Source

=E4=B8=8D=E6=98=8E=E7=82=B9=E3=81=AF=E3=80=8C=E6=A0=AA=E5=BC=8F=E4=BC=9A=
=E7=A4=BEAAA =E3=82=AB=E3=82=B9=E3=82=BF=E3=83=9E=E3=83=BC=E3=82=B5=
=E3=83=9D=E3=83=BC=E3=83=88=E3=80=8D=E3=81=B8=E3=81=8A=E5=95=8F=E3=81=84=
=E5=90=88=E3=82=8F=E3=81=9B=E3=81=8F=E3=81=A0=E3=81=95=E3=81=84=E3=80=82
=

=E6=A0=AA=E5=BC=8F=E4=BC=9A=E7=A4=BEAAA =E3=82=AB=E3=82=B9=E3=82=BF=
=E3=83=9E=E3=83=BC=E3=82=B5=E3=83=9D=E3=83=BC=E3=83=88
=E5=8F=97=E4=BB=
=98=E6=99=82=E9=96=93=EF=BC=9A10:00=EF=BD=9E19:00=EF=BC=88=E5=B9=B4=
=E4=B8=AD=E7=84=A1=E4=BC=91=EF=BC=89
```
となり、5行目に　"=”１文字が付与されます。

mailhogでエンコードされた表示は下記のようになります。

＜**本文**＞
![スクリーンショット 2022-09-30 16.20.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1015366/9b25f6cc-7bee-22b0-1925-21358cc1d39f.png)

```お問い合わせください。```の後ろの改行が削除されて、sample.blade.phpと表示が違ってしまっています。
「quoted-printable」でエンコードされる場合は、エンコード後の文字列の長さを76文字以下にする必要があるため、"="が付与されます。
ですが、上記の場合、76文字に満たないため、"="は不要かとおもいますが、76文字未満にも関わらず、エンコード後に"="が付与されてしまいました。

※ヘッダ
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; 
charset=utf-8

## 解決に至るまで
検証をしてみました。
下記のデコードツールで、mailhogでエンコードされた結果を変換してみました。

https://www.en-pc.jp/tech/quoted-printable.php

すると、期待していた通りのsample.blade.phpと同じ表示になりました
＜**本文**＞
![スクリーンショット 2022-12-06 13.03.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1015366/8ff06afc-60f9-9ec4-154d-04541d31a6e6.png)

試しに、こちらでsample.blade.phpをデコードしてみました。
```
=E4=B8=8D=E6=98=8E=E7=82=B9=E3=81=AF=E3=80=8C=E6=A0=AA=E5=BC=8F=E4=BC=9A=
=E7=A4=BEAAA =E3=82=AB=E3=82=B9=E3=82=BF=E3=83=9E=E3=83=BC=E3=82=B5=
=E3=83=9D=E3=83=BC=E3=83=88=E3=80=8D=E3=81=B8=E3=81=8A=E5=95=8F=E3=81=84=
=E5=90=88=E3=82=8F=E3=81=9B=E3=81=8F=E3=81=A0=E3=81=95=E3=81=84=E3=80=82

=E6=A0=AA=E5=BC=8F=E4=BC=9A=E7=A4=BE=E3=83=91=E3=83=AB=E3=82=B3 =E3=82=AB=
=E3=82=B9=E3=82=BF=E3=83=9E=E3=83=BC=E3=82=B5=E3=83=9D=E3=83=BC=E3=83=88
=E5=8F=97=E4=BB=98=E6=99=82=E9=96=93=EF=BC=9A10:00=EF=BD=9E19:00=EF=BC=88=
=E5=B9=B4=E4=B8=AD=E7=84=A1=E4=BC=91=EF=BC=89
```
エンコード後
＜**本文**＞
![スクリーンショット 2022-12-06 13.03.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1015366/8ff06afc-60f9-9ec4-154d-04541d31a6e6.png)
期待していたものと同じになりました。

**Gmailで確認**
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
```
=E4=B8=8D=E6=98=8E=E7=82=B9=E3=81=AF=E3=80=8C=E6=A0=AA=E5=BC=8F=E4=BC=9A=
=E7=A4=BEAAA =E3=82=AB=E3=82=B9=E3=82=BF=E3=83=9E=E3=83=BC=E3=82=B5=
=E3=83=9D=E3=83=BC=E3=83=88=E3=80=8D=E3=81=B8=E3=81=8A=E5=95=8F=E3=81=84=
=E5=90=88=E3=82=8F=E3=81=9B=E3=81=8F=E3=81=A0=E3=81=95=E3=81=84=E3=80=82

=E6=A0=AA=E5=BC=8F=E4=BC=9A=E7=A4=BE=E3=83=91=E3=83=AB=E3=82=B3 =E3=82=AB=
=E3=82=B9=E3=82=BF=E3=83=9E=E3=83=BC=E3=82=B5=E3=83=9D=E3=83=BC=E3=83=88
=E5=8F=97=E4=BB=98=E6=99=82=E9=96=93=EF=BC=9A10:00=EF=BD=9E19:00=EF=BC=88=
=E5=B9=B4=E4=B8=AD=E7=84=A1=E4=BC=91=EF=BC=89
```
＜**本文**＞
![スクリーンショット 2022-12-06 13.03.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1015366/8ff06afc-60f9-9ec4-154d-04541d31a6e6.png)
こちらも、期待していたものと同じになりました。

## 原因
mailhog で改行が消えて見えるのは、デコーダのバグorHTMLメールでの表示崩れが原因ではないかと思います。
また、試しに連続した改行を含んだ quoted-printable データを流し込んでみたところ、末尾の = の後に改行が複数個続くとまとめて打ち消されてしまうような表示になりました。

## まとめ
冒頭でも書きましたが、mailhog での確認だけでなく、実在のメールアドレスに送って見た目を確認してみること。
同じような方がいらっしゃったら、少しでも役に立てれば幸いです。

### 参考にさせていただいた記事
https://qiita.com/takey/items/13a3dee5d78d364dd55c