blastengine(ブラストエンジン)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先へメールを届けられます。
現在、Go言語向けに、blastengine SDKを開発しています。今回は、トランザクションメール(即時配信メール)での添付ファイルの送信方法を解説します。
ユーザ登録する
blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。
送信元ドメインのSPFを設定する
送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定できますが、TXTレコードに以下のSPFを追加します。
txt @ v=spf1 include:spf.besender.jp ~all
APIキーを取得する
ログイン後、管理画面の右上にある設定メニューに移動します。
そして設定の中で、APIキーを取得します。
必要な情報について
SDKを使う上で必要なのは、先ほどのAPIキーとユーザIDになります。
SDKのインストール
SDKはblastengineMania/blastengine-go: Blastengine Golang SDKにて公開しています。インストールは go get
で行います。
go get github.com/blastengineMania/blastengine-go
初期化
先ほどのAPIキーとユーザIDを使って初期化します。
package main
import (
"fmt"
"github.com/blastengineMania/blastengine-go"
)
func main() {
apiKey := "yourApiKey"
userId := "yourUserId"
client := blastengine.Initialize(apiKey, userId)
}
トランザクションオブジェクトの作成
メールを即時配信する際にはトランザクションオブジェクトを使います。
transaction := client.NewTransaction()
必要な情報をセットする
続けて、トランザクションオブジェクトに必要なオブジェクトをセットします。
transaction.SetFrom("from@example.com", "Sender Name")
transaction.SetTo("to@example.com")
transaction.SetSubject("Test Subject")
transaction.SetTextPart("This is a text part")
transaction.SetHtmlPart("<p>This is an HTML part</p>")
添付ファイルを追加する
添付ファイルは AddAttachments
プロパティにファイルのパスをセットします。
transaction.AddAttachments("path/to/file1.txt")
transaction.AddAttachments("path/to/file2.txt")
送信する
トランザクションメールは、 Send
で送信します。
err := transaction.Send()
if err != nil {
fmt.Println("Failed to send transaction:", err)
} else {
fmt.Println("Transaction sent successfully")
}
送信成功した場合は transaction.DeliveryId
に送信IDが入ります。失敗した場合には、例外処理になります。
transaction.DeliveryId
コードについて
コードはGitHubにアップしてあります。ライセンスはMIT Licenseになります。
blastengineMania/blastengine-go: Blastengine Golang SDK
まとめ
blastengineには、他にも1クリックでの購読停止機能や、Webhookなどの仕組みがあります。他の機能も随時実装していきますので、ぜひ皆さんのシステム開発に役立ててください。