独自ドメインのメールを費用をかけずに送信する

2021-03-09

自分のドメインのメールを、Gmailを経由することで費用をかけずに送信する方法を紹介します。

.comなどの安いドメインだと年間1000円程度で独自のドメインを取得することができますので、多くの方が独自ドメインでブログなどをやってるんじゃないかと思います。

たいていのレジストラでは受信メールの転送機能は無料でサポートしているので、普段使ってるメインのメールアドレスに転送することでその独自ドメイン宛のメールを受信して読むことはできますが、送信機能は有料のことが一般的ですので、問い合わせメールへの返信などにno-reply@freemail-example.comのような返信不可のメールアドレスを使用して送信するハメになっている事があると思います。

この記事では、取得したドメインを仮にexample.comとして、info@example.comからメールを送信するための手順を掲載しますので参考にしてください。

レジストラはGoogleがやってるGoogle Domainsだけじゃなく、他のレジストラでも大丈夫です。

なお、私は一日に数通程度しか送信しておらず、送信メール数の上限や、大量のメール送信できるかどうかなどは分かりませんので悪しからず。そして自明のこととは思いますが大量のメールを送信したり、迷惑メール認定で垢バンになったりしても責任はおえません。

レジストラでメールを受信できるように設定する

レジストラの設定でメール転送などの機能を使用して、送信設定したいメールアドレス(例:info@example.com)宛のメールを受信できるように設定してください。このメールが受信できないと送信の設定ができないので、自分の別のメールから送信してみたりして、ちゃんと受信できることをか確認しておいてください。

新規のGoogleアカウントを取得してアプリパスワードを生成する

紹介する方法ではGmail経由でメールを送信しますが、gmail.comのメールアドレスからはメールを送信できなくなるので(WebのGmailからは手間を掛ければ送信できますが)、すでにGoogleアカウントをもっている場合でも新たにGoogleアカウントを取得することをお勧めします。

取得したGoogleアカウントに紐付いたメールアドレスは基本的に使用しないので、取得するアカウント名にはこだわらなくてもいいと思います。

新規GoogleアカウントはGoogle アカウントの作成などを参考にすれば簡単に取得できます。なお取得するのは自分用・ビジネス管理用のどちらでも構いません。

アカウントが取得できたら、下の図のように右上のアカウントのアイコンをクリックして表示されるメニューから、Googleアカウントを管理のボタンをクリックします。

次に、Googleアカウントの画面に移動したら、下図のようにセキュリティをクリックします。

下図ではすでに設定が終わった状態になっていますが、ページの中ほどにあるGoogleへのログインの項目で2段階認証プロセスをオンに設定したあとに表示されるようになる、アプリパスワードをクリックします。
ちなみに2段階認証プロセスの設定には電話番号を入力したりちょっとした手間がかかります。その際に使用する電話番号は、すでにもっている別のGoogleアカウントの2段階認証などで使用している電話番号と同じでも問題ありません。

アプリパスワードの画面ではアプリを選択 欄と、デバイスを選択 欄がありますので、アプリを選択欄ではメールを選択し、デバイスを選択欄では、その他(名前を入力)を選択して適当な名前(「gmail」などのあとでわかりやすい名称)をつけて、右下の生成 ボタンを押します。

すると、下図のように16桁のアプリパスワードが生成されます。この画面ではメモするなと書いてありますが、Gmailの送信設定が完了するまでは必要なので、忘れないようにいったん保存しておきます。

Gmailの設定

新たにつくったGoogleアカウントのGmailを開き、右上の歯車のアイコンをクリックして開くペインからすべての設定を表示ボタンをクリックします。

設定画面が開きますので、上段のアカウントとインポートをクリックします。

表示されるメニューから、以下の図のように他のメールアドレスを追加のリンクをクリックします。

新しく黄色いポップアップウインドウが出ますので、送信設定したいメールアドレス(例:info@example.com)と表示したい送信者名を入力します。実際にはWebのGmailからではなくメーラーやアプリから送信する場合には、ここで入力する送信者名は無視されますので適当な送信者名で構いません。

エイリアスとして扱います のチェックは付けたままで進みます。(おそらくエイリアスじゃなくてもOKだと思いますが確認してません。)

次のページではSMTPサーバ欄に smtp.gmail.com 、ユーザ名にGoogleアカウントのユーザ名(取得したGmailアドレスが example-mail-sender@gmail.comだとしたら、example-mail-senderがアカウント名)を入力します。このユーザ名は、独自ドメインのユーザではないので間違わないようにしてください。

パスワードは、上の方で取得したGoogleアカウントのアプリパスワードを入力します。

ポート番号など、その他の欄はデフォルトのママで進めます。

上図でアカウントを追加のボタンを押すと、独自ドメインのメールアドレス(例:info@example.com)に確認のメールが送信されますのでメール内に記載されている確認コードを入力してください。

あとは、Gmailの設定画面で、以下のように追加された方のメールアドレスをデフォルトに設定するだけです。

実際に独自ドメインのメールアドレスからメールを送信する

Google App EngineのGolangアプリだと、Golang標準ライブラリのみを使って以下のような感じでメールを送信することができます。その他の言語でも同様のプログラムでいけると思うので頑張ってください。

func exampleHandler(w http.ResponseWriter, r *http.Request) {
   msg := `<html><body>
      <h1>Goアプリからメール送信</h1>
         ・・・・
      </body></html>`

   mime := "MIME-version: 1.0;\nContent-Type: text/html; charset=\"UTF-8\";\n\n"
   subject := "Subject: テスト\n"
   from := "From: 送信者名 <info@example.com>\r\n"

   if err := smtp.SendMail(
      "smtp.gmail.com:587",
      smtp.PlainAuth(
         "",
         "Googleアカウント名@gmail.com",
         "アプリパスワード",
         "smtp.gmail.com",
      ),
      "info@example.com",
      []string{"送信先のメールアドレス"},
      []byte(from+subject+mime+msg),
   ); err != nil {
      log.Printf("メール送信エラー: %v", err)
      return
   }
}
GolangGoogle App Engine