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