🙆@I❤️♨️.tk というメルアドでメール受信する

GCP Compute Engineなど常時接続の固定グローバルIPアドレスを持てるサーバーを適切に設定して[🙆@I❤️♨️.tk](mailto:🙆@I❤️♨️.tk) というメルアドでメールを受信できるようにする話です。サーバーはウブンツを仮定。動作確認はGCP Compute EngineのUbuntu 19.10 Minimalで行っています。絵文字メルアドに向かってgmailからメール送信して無事受信できました（記事末尾参照）。GCP Compute Engineからメール送信するのは外向きのポート25番への接続が全面禁止されていて面倒なのでやってません。
GCPで固定グローバルアドレスを取得（無料）する手順は [静的外部 IP アドレスの予約](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address?hl=ja) に説明されています。

# ドメイン名取得
基本的には [無料で絵文字ドメイン名とそのSSL証明書を取得して遊ぶ (Freenom × Let's Encrypt)](https://qiita.com/tappie/items/89ba75e2613c49720348) に書いてある通りですが、Freenomで空きドメイン名を探すときに入力欄に「I❤️♨️」といれるのではなく「I❤️♨️.tk」のように国コード(tk)まで入力して空きを探します。そうしないと「空きがありません」エラーが空きがある場合でも返されます（２０２０年３月）。また「佐藤家.tk」のような日本語ドメイン名も空きがあれば取得できます。ここで「転送（Forwarding）サービス」ではなくてDNSを選びます。その後「Use Default Nameservers」を選びます。

# FreenomのDNS情報の設定
ドメイン名を取得したら my.freenom.com にログインし「Services」→「My Domains」→「Manage Domain」→「Manage Freenom DNS」を選び、以下のスクショのような感じでAレコード（ホスト名をIPv4アドレスに変換するレコード）を確保してある固定グローバルアドレスに設定します。

![Screenshot from 2020-03-15 15-09-39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259309/02f6d134-7fca-15f7-d0d1-78254cf4a2fd.png)

# GCPのファイアーウォールの設定

[ファイアウォール ルールの概要](https://cloud.google.com/vpc/docs/firewalls?hl=ja) に従って外部から自分のサーバーのポート25番への接続を許すようにします。例としては以下のような感じ

![Screenshot from 2020-03-15 15-16-10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259309/104b3a7f-b175-e0e3-53c4-ee30283e2d98.png)

# postfix のインストール
`sudo apt-get install postfix` でpostfixをウブンツサーバーにインストールします。ここでインストール時の設定としては「Internet Site」を選びます。以下のような感じ

![Screenshot from 2020-03-15 15-18-54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259309/8016939e-bd87-1586-ff00-24eaef1a9207.png)

＠マークの前のユーザー名で受け取りたいものを普段使っているユーザーに転送するように `/etc/aliases` を編集し、`newaliases` を実行します。

```config:/etc/aliases`
root: myuser
🙆: myuser
♨️: myuser
♨: myuser
💩: myuser
```

また、`/etc/postfix/main.cf` の末尾に以下のように絵文字ドメイン名を設定します

```config:/etc/postfix/main.cf
smtputf8_enable = yes
mydomain = xn--i-t3p94b.tk
myhostname = www.xn--i-t3p94b.tk
myorigin = I❤️♨️.tk
mydestination = www.xn--i-t3p94b.tk, xn--i-t3p94b.tk, I❤️♨️.tk, www.I❤️♨️.tk, I❤♨.tk, www.I❤♨.tk
smtputf8_autodetect_classes = all
```
[Postfix SMTPUTF8 support](http://www.postfix.org/SMTPUTF8_README.html) に書いてあるように`mydomain` と `myhostname` にはASCII文字しか書けないため https://www.punycoder.com/ で絵文字をASCIIに変換したドメイン名を書く必要があります。それ以外の部分には絵文字ドメインを書いておきます。最後に `systemctl restart postfix` でpostfixを再スタートします。

# ウェブサーバー
似たような手順で絵文字ドメインのウェブサーバーも設置できます。

* GCPのファイアーウォール設定で自分のサーバーのポート80番への接続を許可する
* `nginx` をインストールする

という手順でできます。設置した例が http://www.I❤️♨️.tk にあります（現在休止中）。

# 送信アドレスを 🙆@i❤♨.tk にした gmail からの送信
[別のアドレスやエイリアスからメールを送信する](https://support.google.com/mail/answer/22370?hl=ja) に従って作業すればできるようになると思いますが、まだやってません。

![Screenshot from 2020-03-16 03-17-19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259309/f0515edf-3478-7963-83e3-48053ff08b92.png)

![Screenshot from 2020-03-16 03-20-17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259309/4dd780aa-a893-7e1d-c4e6-61e1b9ce43b4.png)


# gmailから絵文字メルアドに送ったメール

```text
From user@gmail.com  Mon Mar 16 17:33:21 2020
Return-Path: <user@gmail.com>
X-Original-To: 🙆@i❤♨.tk
Delivered-To: 🙆@i❤♨.tk
Received: from mail-oi1-f181.google.com (mail-oi1-f181.google.com [209.85.167.181])
	by www.xn--i-t3p94b.tk (Postfix) with UTF8SMTPS id 55F094048F
	for <🙆@i❤♨.tk>; Mon, 16 Mar 2020 17:33:21 +0900 (JST)
Received: by mail-oi1-f181.google.com with SMTP id p125so16858760oif.10
        for <🙆@i❤♨.tk>; Mon, 16 Mar 2020 01:33:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=mime-version:from:date:message-id:subject:to
         :content-transfer-encoding;
        bh=INqmyYv9ms4xWxHIIbZPJ+3ZG4qe23aFwE1bDUqu+NU=;
        b=RzB3/1rHz6WIHoFT+rpS4PbSAFm4uctPkJd84QATrPWJKITpS6JYmsZrmsIp7KUf0f
         tnoKx8JY5x7114Y6m1a0gDw/zY/IblcvBd4OXxxIJDqg/p+0LvZiGGOJai0q+Ip1tbqL
         cNSaBOxj4rpAxGBtk9G+d36zWEcuCxFCTybKmvjLNkpYdf5ku681yyMWGt7VK4CixHK/
         O3P0KfH+oXkbkdBLMp9gG9aax5+YWUMqumkoO7c8fng9KTS/0W2983RGrXnS3ps2H8WW
         fvEA/ORNsT6Fp0sgJZMQcxNvyhq+1EULJKMf6JchILTKj1VtkNHG6D2GVcy0YsAeuGgI
         gOQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:from:date:message-id:subject:to
         :content-transfer-encoding;
        bh=INqmyYv9ms4xWxHIIbZPJ+3ZG4qe23aFwE1bDUqu+NU=;
        b=HtizC0nleJI9mno4I2Ll8xgdQPjqjtxJYeajrsqGkvVttSwnsZbDFYm33QqKi+eeAE
         jENTztY4ywShYnPKlDECLIIpFh/QFiZSndzK720NZWdSNDwCTeNQb8YJ1xzulm2Yi8dB
         20WSfq1HxA43JpVvLRJIWqvRF780q2Mffe0++5tch+kVCMch97MvSzj3pr/xyWvKSLpe
         6A1xb8fmc+5ys2FRRu7iP7sHwvGXEtKWoz6Ldi+BBjynaPSPABJVuj+ET4nL26yC3mI5
         qF0q2T6sw6g0OSQXAuGe5hTY+0nTGbr8bEvBY218QTIyJGGRaU80omxcF13nGvttPSRT
         VFcA==
X-Gm-Message-State: ANhLgQ03z2+MXOwnm9P7hdZatRPIB8D8NHle5f1oL1o6Kb/Z9/MiXZOV
	oHDtXOxPJx1gb6NSgO6g1z07gh/yyEPROKBWVMvrTqqH
X-Google-Smtp-Source: ADFU+vt50BNjadWMv2B+LN4SMNzrb81//xfSBVM/07Y+mKWDol1FmEXDEwPK0At8xj01/1WNYgc2eQbCweEWMfjNdEw=
X-Received: by 2002:aca:5194:: with SMTP id f142mr17002785oib.100.1584347599696;
 Mon, 16 Mar 2020 01:33:19 -0700 (PDT)
MIME-Version: 1.0
From: この記事の著者 <user@gmail.com>
Date: Mon, 16 Mar 2020 17:33:08 +0900
Message-ID: <CAMYGc7Y_wferXh732YcbYmeapPvESXLmjke00EGiSZrCQtk7iw@mail.gmail.com>
Subject: ✌
To: 🙆@i❤♨.tk
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit

☃

```