0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

blastengine Go SDKの配信メール取得機能を使いこなす

Last updated at Posted at 2025-03-07

blastengine(ブラストエンジン)は開発者向けのシンプルで使いやすいメール配信サービスです。Go言語向けSDKを使うことで、プログラムからメール配信の履歴を簡単に取得することができます。

今回は、blastengine Go SDKのclient.GetDeliveriesメソッドを使って、メール配信履歴を取得する方法について解説します。

基本的な使い方

GetDeliveriesメソッドは、blastengineで送信したメールの配信履歴を取得するためのメソッドです。このメソッドを使うことで、過去に送信したメールの一覧や詳細情報を取得することができます。

基本的な使い方は以下の通りです:

package main

import (
	"fmt"
	"github.com/blastengineMania/blastengine-go"
)

func main() {
	// クライアントの初期化
	apiKey := "yourApiKey"
	userId := "yourUserId"
	client := blastengine.Initialize(apiKey, userId)

	// パラメータの設定
	params := &blastengine.GetDeliveriesParams{}

	// 配信履歴の取得
	deliveries, err := client.GetDeliveries(params, false)
	if err != nil {
		fmt.Printf("配信履歴の取得に失敗しました: %v\n", err)
		return
	}

	// 取得した配信履歴の表示
	for i, delivery := range deliveries {
		fmt.Printf("配信 #%d: ID=%d, タイプ=%s, ステータス=%s, 件名=%s\n",
			i+1, delivery.DeliveryId, delivery.DeliveryType, delivery.Status, delivery.Subject)
	}
}

配信タイプの指定

GetDeliveriesメソッドの2つ目の引数は、取得する配信タイプを指定するためのフラグです。

  • false: TransactionとBulkのみを対象とします
  • true: SMTP配信も含めたすべての配信タイプを対象とします

例えば、SMTPメールの配信履歴も含めて取得したい場合は以下のようにします:

// すべての配信タイプ(SMTP含む)を取得
deliveries, err := client.GetDeliveries(params, true)

一方、TransactionとBulkのみを取得したい場合は以下のようにします:

// TransactionとBulkのみを取得
deliveries, err := client.GetDeliveries(params, false)

検索パラメータの指定

GetDeliveriesParams構造体を使って、様々な条件で配信履歴を検索することができます。主なパラメータは以下の通りです:

params := &blastengine.GetDeliveriesParams{
	Status:        []string{"SENT", "FAILED"},  // 配信ステータス
	DeliveryType:  []string{"BULK", "TRANSACTION"}, // 配信タイプ
	DeliveryStart: time.Now().AddDate(0, 0, -7), // 配信開始日時
	DeliveryEnd:   time.Now(),                  // 配信終了日時
	Subject:       "お知らせ",                    // 件名(部分一致)
	TextPart:      "キャンペーン",                 // テキスト本文(部分一致)
	HtmlPart:      "<p>キャンペーン</p>",          // HTML本文(部分一致)
	From:          "info@example.com",          // 送信元アドレス(部分一致)
	Size:          10,                          // 1ページあたりの取得件数
	Page:          1,                           // ページ番号
	Sort:          "delivery_time:desc",        // ソート順
}

パラメータの詳細については、blastengineのAPI仕様書を参考にしてください。

具体的な使用例

例1: 最近1週間のメール配信履歴を取得する

// 現在時刻から1週間前
oneWeekAgo := time.Now().AddDate(0, 0, -7)

// パラメータを指定
params := &blastengine.GetDeliveriesParams{
	DeliveryStart: oneWeekAgo,
	DeliveryEnd:   time.Now(),
	Size:          20,
	Page:          1,
	Sort:          "delivery_time:desc", // 新しい順
}

// 配信履歴の取得(TransactionとBulkのみ)
deliveries, err := client.GetDeliveries(params, false)

例2: 特定の件名のメールを検索する

// 件名で検索
params := &blastengine.GetDeliveriesParams{
	Subject: "キャンペーン",
	Size:    10,
}

// 配信履歴の取得
deliveries, err := client.GetDeliveries(params, false)

例3: SMTP配信のみを取得する

// SMTPのみを対象に検索
params := &blastengine.GetDeliveriesParams{
	DeliveryType: []string{"SMTP"},
	Size:         10,
}

// SMTP配信を含めて取得(第2引数をtrueに設定)
deliveries, err := client.GetDeliveries(params, true)

取得したデータの活用

GetDeliveriesメソッドから返されるMail構造体には、配信に関する様々な情報が含まれています:

type Mail struct {
	DeliveryId      int         // 配信ID
	From            MailAddress // 送信元アドレス
	Status          string      // 配信ステータス
	DeliveryTime    time.Time   // 配信時間
	UpdatedTime     time.Time   // 更新時間
	CreatedTime     time.Time   // 作成時間
	ReservationTime time.Time   // 予約時間
	TextPart        string      // テキスト本文
	HtmlPart        string      // HTML本文
	DeliveryType    string      // 配信タイプ
	Subject         string      // 件名
	// その他のフィールド...
}

まとめ

blastengine Go SDKのclient.GetDeliveriesメソッドを使うことで、プログラムから簡単にメール配信履歴を取得・分析することができます。2つ目の引数を適切に設定することで、TransactionとBulkのみの取得や、SMTP配信も含めた取得が可能です。

様々なパラメータを組み合わせることで、柔軟な検索条件を指定できるため、目的に応じた配信履歴の取得が可能になります。

blastengineのその他の機能と組み合わせることで、より高度なメール配信システムを構築することができます。ぜひ、皆さんのシステム開発に役立ててください。

エンジニア向けメール配信システム「ブラストエンジン」

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?