[golang]fiber API3~Checkout: Email送信の実装

こんにちは、KOUKIです。

GolangのWebフレームワークであるfiberを使って、APIを開発しています。

前回は、Stripeでチェックアウト機能を実装しました。

今回は、Email送信機能を実装しましょう。そして、API側の開発は、本記事で最後になります。

尚、本記事は「React, NextJS and Golang: A Rapid Guide – Advanced」コースを参考にしています。解釈は私が勝手に付けているので、本物をみたい場合は受講をお勧めします!

前回

作るもの

Checkout機能を作りたいと思います。エンドポイントは、次の通りです。

エンドポイント
  • GET /api/checkout/links/{code}
  • POST /api/checkout/orders
  • POST /api/checkout/orders/confirm

Email送信

商品をカートに入れて、Checkoutを済ませると、Emailを飛ばせるようにしたいと思います。

Mailhog

Mailhogは、ローカル上でEmailの送受信をテストできる便利ツールです。

以前、これを使って、Email送信機能を実装したことがあるので、DockerにMailhogを導入したいと思います。

docker-compose.ymlに、smtpサービスを追加します。

1025ポートは、プログラム内からMailhogにアクセスする用のポートで、8025ポートは、ブラウザからMailhogにアクセスするためのポートです。

以下のコマンドで、コンテナを立ち上げてみましょう。

ブラウザから「http://localhost:8025/」へアクセスしてみましょう。

ここに、メールが飛んでくるようにします。

SendMailの実装

smtpパッケージのSendMailメソッドを使って、Mailの送信機能を実装しましょう。

実装する場所は、前回作成したCompleteOrder関数の中です。

SendMailの「”:1025″」にて、MailhogへのAddressを指定しています。

検証

以下のパラメーターで、Checkoutをしましょう。

  • URL: http://localhost:8000/api/checkout/orders/confirm
  • 形式: POST

ブラウザから「http://localhost:8025/」へアクセスして、メールが飛んでいるか確認しましょう。

OKですね。

次回

次回からは、Reactを使ってフロントエンド側の実装に入ります。

Go言語まとめ

ソースコード

ここまでのソースコードを以下に記載します。

docker-compose.go

orderController.go

コメントを残す