Email API
ライブラリ
現時点ではAPIラッパーはまだリリースしていませんが、近い将来リリースする予定です。特定のプログラミング言語のAPIラッパーがリリースされた際に通知を希望される場合は、api@forwardemail.net にメールを送ってください。その間は、以下の推奨HTTPリクエストライブラリをアプリケーションで使用するか、下記の例のように単にcurlを使用できます。
| 言語 | ライブラリ |
|---|---|
| Ruby | Faraday |
| Python | requests |
| Java | OkHttp |
| PHP | guzzle |
| JavaScript | superagent (私たちがメンテナ) |
| Node.js | superagent (私たちがメンテナ) |
| Go | net/http |
| .NET | RestSharp |
Base URI
現在のHTTPベースURIパスは次のとおりです:https://fe.tiamati.email。
Authentication
すべてのエンドポイントはBasic Authorizationを使用した認証が必要です。認証方法は2つあります:
API Token Authentication (ほとんどのエンドポイントに推奨)
APIキーを「ユーザー名」値として設定し、パスワードは空にします:
curl https://fe.tiamati.email/v1/account \
-u API_TOKEN:
APIトークンの後のコロン(:)に注意してください。これはBasic認証形式でパスワードが空であることを示します。
Alias Credentials Authentication (送信メール用)
送信SMTPメール作成エンドポイントは、エイリアスメールアドレスと生成されたエイリアスパスワードを使用した認証もサポートしています:
curl -X POST https://fe.tiamati.email/v1/emails \
-u "alias@yourdomain.com:your_generated_password" \
-d "to=recipient@example.com" \
-d "subject=Hello" \
-d "text=Test email"
この方法は、すでにSMTP認証情報を使用しているアプリケーションからメールを送信する際に便利で、SMTPからAPIへの移行をシームレスにします。
Alias-Only Endpoints
Alias Contacts、Alias Calendars、Alias Messages、およびAlias Foldersエンドポイントはエイリアス認証情報が必要で、APIトークン認証はサポートしていません。
ご心配なく — 何かわからない場合は以下に例を示しています。
Errors
エラーが発生した場合、APIリクエストのレスポンスボディに詳細なエラーメッセージが含まれます。
| Code | Name |
|---|---|
| 200 | OK |
| 400 | 不正なリクエスト |
| 401 | 認証エラー |
| 403 | 禁止 |
| 404 | 見つかりません |
| 429 | リクエスト過多 |
| 500 | サーバー内部エラー |
| 501 | 未実装 |
| 502 | バッドゲートウェイ |
| 503 | サービス利用不可 |
| 504 | ゲートウェイタイムアウト |
Tip
5xxステータスコードを受け取った場合(通常は発生しません)、api@forwardemail.netまでご連絡ください。すぐに問題解決をお手伝いします。
Localization
当サービスは25以上の言語に翻訳されています。すべてのAPIレスポンスメッセージは、APIリクエストを行うユーザーの最後に検出されたロケールに翻訳されます。カスタムのAccept-Languageヘッダーを渡すことでこれを上書きできます。このページ下部の言語ドロップダウンでぜひお試しください。
Pagination
Note
2024年11月1日以降、ドメイン一覧およびドメインエイリアス一覧のAPIエンドポイントは、1ページあたりの最大結果数がデフォルトで1000になります。これを早期に適用したい場合は、エンドポイントのURLに追加のクエリ文字列パラメータとして?paginate=trueを渡してください。
ページネーションは結果を一覧表示するすべてのAPIエンドポイントでサポートされています。
クエリ文字列のpage(および任意でlimit)を指定してください。
pageは1以上の数値である必要があります。limitを指定する場合(これも数値)は、最小値が10、最大値が50です(特に記載がない限り)。
| クエリ文字列パラメータ | 必須 | 型 | 説明 |
|---|---|---|---|
page |
いいえ | 数値 | 返す結果のページ。指定しない場合、pageの値は1になります。1以上の数値である必要があります。 |
limit |
いいえ | 数値 | 1ページあたりの結果数。指定しない場合はデフォルトで10。1以上かつ50以下の数値である必要があります。 |
| より多くの結果が利用可能かどうかを判断するために、これらのHTTPレスポンスヘッダーを提供しています(プログラムでページネーションを行うために解析できます): |
| HTTP Response Header | Example | Description |
|---|---|---|
X-Page-Count |
X-Page-Count: 3 |
利用可能な総ページ数。 |
X-Page-Current |
X-Page-Current: 1 |
返された結果の現在のページ(例:pageクエリ文字列パラメータに基づく)。 |
X-Page-Size |
X-Page-Size: 10 |
返されたページ内の結果の総数(例:limitクエリ文字列パラメータおよび実際に返された結果に基づく)。 |
X-Item-Count |
X-Item-Count: 30 |
すべてのページにわたる利用可能なアイテムの総数。 |
Link |
Link: <https://api.forwardemail.net/v1/emails?page=1>; rel="prev", <https://api.forwardemail.net/v1/emails?page=3>; rel="next", <https://api.forwardemail.net/v1/emails?page=3; rel="last", https://api.forwardemail.net/v1/emails?page=1; rel="first" |
例のように解析できるLink HTTPレスポンスヘッダーを提供しています。これはGitHubに似ています(例:関連性がないか利用できない場合はすべての値が提供されるわけではありません。例えば、次のページがない場合は"next"は提供されません)。 |
Example Request:
curl https://fe.tiamati.email/v1/domains/example.com/aliases?page=2&pagination=true \
-u API_TOKEN:
ログ
ログの取得
当社のAPIは、アカウントのログをプログラム的にダウンロードすることを可能にします。このエンドポイントにリクエストを送信すると、アカウントのすべてのログが処理され、完了後に添付ファイル(Gzip圧縮されたCSVスプレッドシートファイル)としてメールで送信されます。
これにより、Cronジョブや当社のNode.jsジョブスケジューリングソフトウェアBreeを使用してバックグラウンドジョブを作成し、必要なときにログを受け取ることができます。なお、このエンドポイントは1日あたり10リクエストに制限されています。
添付ファイル名は小文字のemail-deliverability-logs-YYYY-MM-DD-h-mm-A-z.csv.gz形式で、メール本文には取得したログの簡単な概要が含まれています。また、マイアカウント → ログからいつでもログをダウンロードできます。
GET /v1/logs/download
| クエリ文字列パラメータ | 必須 | 型 | 説明 |
|---|---|---|---|
domain |
いいえ | 文字列 (FQDN) | 完全修飾ドメイン名(FQDN)でログをフィルタリングします。指定しない場合はすべてのドメインのログが取得されます。 |
q |
いいえ | 文字列 | メール、ドメイン、エイリアス名、IPアドレス、または日付(M/Y、M/D/YY、M-D、M-D-YY、M.D.YY形式)でログを検索します。 |
bounce_category |
いいえ | 文字列 | 特定のバウンスカテゴリ(例:blocklist)でログを検索します。 |
response_code |
いいえ | 数値 | 特定のエラー応答コード(例:421や550)でログを検索します。 |
Example Request:
curl https://fe.tiamati.email/v1/logs/download \
-u API_TOKEN:
Cronジョブの例(毎日深夜):
0 0 * * * /usr/bin/curl https://fe.tiamati.email/v1/logs/download -u API_TOKEN: &>/dev/null
Cronジョブの式の構文を検証するには、Crontab.guruなどのサービスを利用できます。
Cronジョブの例(毎日深夜、前日のログ付き):
MacOSの場合:
0 0 * * * /usr/bin/curl https://fe.tiamati.email/v1/logs/download?q=`date -v-1d -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null
LinuxおよびUbuntuの場合:
0 0 * * * /usr/bin/curl https://fe.tiamati.email/v1/logs/download?q=`date --date "-1 days" -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null
アカウント
アカウントの作成
POST /v1/account
| ボディパラメータ | 必須 | 型 | 説明 |
|---|---|---|---|
email |
はい | 文字列 (メール) | メールアドレス |
password |
はい | 文字列 | パスワード |
Example Request:
curl -X POST https://fe.tiamati.email/v1/account \
-u API_TOKEN: \
-d "email=user%40gmail.com"
アカウントの取得
GET /v1/account
Example Request:
curl https://fe.tiamati.email/v1/account \
-u API_TOKEN:
アカウントの更新
PUT /v1/account
| ボディパラメータ | 必須 | 型 | 説明 |
|---|---|---|---|
email |
いいえ | 文字列 (メール) | メールアドレス |
given_name |
いいえ | 文字列 | 名 |
family_name |
いいえ | 文字列 | 姓 |
avatar_url |
いいえ | 文字列 (URL) | アバター画像のリンク |
Example Request:
curl -X PUT https://fe.tiamati.email/v1/account \
-u API_TOKEN: \
-d "email=user%40gmail.com"
エイリアス連絡先 (CardDAV)
Note
他のAPIエンドポイントとは異なり、これらは認証で「ユーザー名」をエイリアスのユーザー名、「パスワード」をエイリアス生成パスワードとし、Basic認証ヘッダーとして送信する必要があります。 [!WARNING] このエンドポイントセクションは現在作業中で、(できれば)2024年にリリース予定です。 それまでの間は、当社ウェブサイトのナビゲーションにある「Apps」ドロップダウンからIMAPクライアントをご利用ください。
連絡先一覧
GET /v1/contacts
近日公開予定
連絡先作成
POST /v1/contacts
近日公開予定
連絡先取得
GET /v1/contacts/:id
近日公開予定
連絡先更新
PUT /v1/contacts/:id
近日公開予定
連絡先削除
DELETE /v1/contacts/:id
近日公開予定
エイリアスカレンダー(CalDAV)
Note
他のAPIエンドポイントとは異なり、これらは認証で「username」にエイリアスのユーザー名、「password」にエイリアス生成パスワードをBasic認証ヘッダーとして指定する必要があります。
Warning
このエンドポイントセクションは現在作業中で、(できれば)2024年にリリース予定です。 それまでの間は、当社ウェブサイトのナビゲーションにある「Apps」ドロップダウンからIMAPクライアントをご利用ください。
カレンダー一覧
GET /v1/calendars
近日公開予定
カレンダー作成
POST /v1/calendars
近日公開予定
カレンダー取得
GET /v1/calendars/:id
近日公開予定
カレンダー更新
PUT /v1/calendars/:id
近日公開予定
カレンダー削除
DELETE /v1/calendars/:id
近日公開予定
エイリアスメッセージ(IMAP/POP3)
Note
他のAPIエンドポイントとは異なり、これらは認証で「username」にエイリアスのユーザー名、「password」にエイリアス生成パスワードをBasic認証ヘッダーとして指定する必要があります。
Warning
このエンドポイントセクションは現在作業中で、(できれば)2024年にリリース予定です。 それまでの間は、当社ウェブサイトのナビゲーションにある「Apps」ドロップダウンからIMAPクライアントをご利用ください。
ドメインのセットアップ手順を必ずご確認ください。
これらの手順はFAQセクションのIMAPでのメール受信をサポートしていますか?に記載されています。
メッセージ一覧および検索
GET /v1/messages
近日公開予定
メッセージ作成
Note
これはメールを送信しません。単にメッセージをメールボックスフォルダに追加するだけです(例:IMAPのAPPENDコマンドに似ています)。メールを送信したい場合は、下記の送信SMTPメール作成をご覧ください。送信SMTPメールを作成後、このエンドポイントを使ってエイリアスのメールボックスにコピーを追加し保存できます。
POST /v1/messages
近日公開予定
メッセージ取得
GET /v1/messages/:id
近日公開予定
メッセージ更新
PUT /v1/messages/:id
近日公開予定
メッセージ削除
DELETE /v1/messages:id
近日公開予定
エイリアスフォルダ(IMAP/POP3)
Tip
フォルダのパスを使うエンドポイント /v1/folders/:path は、フォルダID :id と互換性があります。つまり、フォルダはpathまたはidのどちらでも指定可能です。
Warning
このエンドポイントセクションは現在作業中で、(できれば)2024年にリリース予定です。 それまでの間は、当社ウェブサイトのナビゲーションにある「Apps」ドロップダウンからIMAPクライアントをご利用ください。
フォルダ一覧
GET /v1/folders
近日公開予定
フォルダ作成
POST /v1/folders
近日公開予定
フォルダ取得
GET /v1/folders/:id
近日公開予定
フォルダ更新
PUT /v1/folders/:id
近日公開予定
フォルダ削除
DELETE /v1/folders/:id
近日公開予定
フォルダコピー
POST /v1/folders/:id/copy
近日公開予定
送信メール
ドメインのセットアップ手順を必ずご確認ください。
これらの手順はマイアカウント → ドメイン → 設定 → 送信SMTP設定に記載されています。送信SMTPでドメインを使用するには、DKIM、Return-Path、DMARCの設定が必要です。
アウトバウンドSMTPメールの制限取得
これは、アカウントごとの1日あたりのSMTPアウトバウンドメッセージ数の count と limit を含むJSONオブジェクトを返すシンプルなエンドポイントです。
GET /v1/emails/limit
リクエスト例:
curl https://fe.tiamati.email/v1/emails/limit \
-u API_TOKEN:
アウトバウンドSMTPメール一覧
このエンドポイントは、メールの message、headers、および rejectedErrors のプロパティ値を返しません。
それらのプロパティと値を取得するには、メールIDを使って メール取得 エンドポイントを使用してください。
GET /v1/emails
| クエリ文字列パラメータ | 必須 | 型 | 説明 |
|---|---|---|---|
q |
いいえ | 文字列(正規表現対応) | メタデータによるメール検索 |
domain |
いいえ | 文字列(正規表現対応) | ドメイン名によるメール検索 |
sort |
いいえ | 文字列 | 特定フィールドでのソート(フィールドの前に単一のハイフン - を付けると逆順ソート)。未設定の場合は created_at がデフォルト。 |
page |
いいえ | 数値 | 詳細は ページネーション を参照 |
limit |
いいえ | 数値 | 詳細は ページネーション を参照 |
リクエスト例:
curl https://fe.tiamati.email/v1/emails?limit=1 \
-u API_TOKEN:
アウトバウンドSMTPメール作成
メール作成用APIは Nodemailer のメッセージオプション設定に触発されており、それを活用しています。以下の本文パラメータについては Nodemailer メッセージ設定 を参照してください。
envelope と dkim(自動設定されるため)を除き、すべての Nodemailer オプションをサポートしています。セキュリティのために disableFileAccess と disableUrlAccess オプションは自動的に true に設定されます。
ヘッダーを含む生の完全なメールを raw オプションで渡すか、以下の個別の本文パラメータを渡してください。
このAPIはヘッダー内に絵文字があれば自動的にエンコードします(例:Subject: 🤓 Hello は自動的に Subject: =?UTF-8?Q?=F0=9F=A4=93?= Hello に変換されます)。開発者に優しく、ミスを防ぐメールAPIを目指しています。
認証: このエンドポイントは APIトークン認証 と エイリアス認証 の両方をサポートしています。詳細は上記の 認証 セクションを参照してください。
POST /v1/emails
| 本文パラメータ | 必須 | 型 | 説明 |
|---|---|---|---|
from |
いいえ | 文字列(メール) | 送信者のメールアドレス(ドメインのエイリアスとして存在する必要があります)。 |
to |
いいえ | 文字列または配列 | "To" ヘッダーの受信者のカンマ区切りリストまたは配列。 |
cc |
いいえ | 文字列または配列 | "Cc" ヘッダーの受信者のカンマ区切りリストまたは配列。 |
bcc |
いいえ | 文字列または配列 | "Bcc" ヘッダーの受信者のカンマ区切りリストまたは配列。 |
subject |
いいえ | 文字列 | メールの件名。 |
text |
いいえ | 文字列またはバッファ | メッセージのプレーンテキスト版。 |
html |
いいえ | 文字列またはバッファ | メッセージのHTML版。 |
attachments |
いいえ | 配列 | 添付ファイルオブジェクトの配列(Nodemailerの共通フィールドを参照)。 |
sender |
いいえ | 文字列 | "Sender" ヘッダーのメールアドレス(Nodemailerの高度なフィールドを参照)。 |
replyTo |
いいえ | 文字列 | "Reply-To" ヘッダーのメールアドレス。 |
inReplyTo |
いいえ | 文字列 | メッセージが返信している Message-ID。 |
references |
いいえ | 文字列または配列 | スペース区切りリストまたは Message-ID の配列。 |
attachDataUrls |
いいえ | ブール値 | true の場合、メッセージのHTML内の data: 画像を埋め込み添付ファイルに変換します。 |
watchHtml |
いいえ | 文字列 | Apple Watch専用のHTML版メッセージ(Nodemailerドキュメントによると、最新のウォッチでは設定不要)。 |
amp |
いいえ | 文字列 | AMP4EMAIL専用のHTML版メッセージ(Nodemailerの例を参照)。 |
icalEvent |
いいえ | オブジェクト | 代替メッセージコンテンツとして使用するiCalendarイベント(Nodemailerのカレンダーイベントを参照)。 |
alternatives |
いいえ | 配列 | 代替メッセージコンテンツの配列(Nodemailerの代替コンテンツを参照)。 |
encoding |
いいえ | 文字列 | テキストおよびHTML文字列のエンコーディング(デフォルトは "utf-8"、"hex" と "base64" もサポート)。 |
raw |
いいえ | 文字列またはバッファ | Nodemailerで生成されるものではなくカスタム生成されたRFC822形式のメッセージ(Nodemailerのカスタムソースを参照)。 |
textEncoding |
いいえ | 文字列 | テキスト値に強制的に使用するエンコーディング("quoted-printable" または "base64")。デフォルトは検出された最適値(ASCIIの場合は "quoted-printable")。 |
priority |
いいえ | 文字列 | メールの優先度("high"、"normal"(デフォルト)、または "low")。"normal" は優先度ヘッダーを設定しません(デフォルト動作)。"high" または "low" の場合は X-Priority、X-MSMail-Priority、Importance ヘッダーが適切に設定されます。 |
headers |
いいえ | オブジェクトまたは配列 | 追加のヘッダーフィールドのオブジェクトまたは配列(Nodemailerのカスタムヘッダーを参照)。 |
messageId |
いいえ | 文字列 | "Message-ID" ヘッダーのオプションのMessage-ID値(未設定の場合は自動生成されます。値はRFC2822仕様に準拠する必要があります)。 |
date |
いいえ | 文字列または日付 | 解析後にDateヘッダーがない場合に使用されるオプションの日時値。未設定の場合は現在のUTC日時文字列が使用されます。日付ヘッダーは現在時刻より30日以上先であってはなりません。 |
list |
いいえ | オブジェクト | List-* ヘッダーのオプションオブジェクト(Nodemailerのリストヘッダーを参照)。 |
例リクエスト(APIトークン):
curl -X POST https://fe.tiamati.email/v1/emails \
-u API_TOKEN: \
-d "from=alias@example.com" \
-d "to=user%40gmail.com" \
-d "subject=test" \
-d "text=test"
例リクエスト(エイリアスクレデンシャル):
curl -X POST https://fe.tiamati.email/v1/emails \
-u "alias@example.com:GENERATED_PASSWORD" \
-d "from=alias@example.com" \
-d "to=user%40gmail.com" \
-d "subject=test" \
-d "text=test"
例リクエスト(Rawメール):
curl -X POST https://fe.tiamati.email/v1/emails \
-u API_TOKEN: \
-d "raw=`cat file.eml`"
アウトバウンドSMTPメールの取得
GET /v1/emails/:id
例リクエスト:
curl https://fe.tiamati.email/v1/emails/:id \
-u API_TOKEN:
アウトバウンドSMTPメールの削除
メールの削除は、現在のステータスが "pending"、"queued"、または "deferred" のいずれかの場合に限り、ステータスを "rejected" に設定し(その後キューで処理されません)、実行されます。メールは作成または送信後30日経過すると自動的に削除される場合があります。そのため、クライアント、データベース、またはアプリケーションにアウトバウンドSMTPメールのコピーを保持することを推奨します。必要に応じて、Create email および Retrieve email エンドポイントの両方から返されるメールID値をデータベースで参照できます。
DELETE /v1/emails/:id
例リクエスト:
curl -X DELETE https://fe.tiamati.email/v1/emails/:id \
-u API_TOKEN:
ドメイン
Tip
ドメインの名前を使ったエンドポイント /v1/domains/:domain_name は、ドメインID :domain_id を使ったものと相互に置き換え可能です。つまり、ドメインは name または id のいずれかの値で参照できます。
ドメイン一覧取得
Note
2024年11月1日以降、List domains および List domain aliases のAPIエンドポイントは、ページあたりの最大結果数がデフォルトで 1000 になります。これを早期に適用したい場合は、エンドポイントのURLに追加のクエリ文字列パラメータとして ?paginate=true を渡すことができます。詳細は Pagination を参照してください。
GET /v1/domains
| クエリ文字列パラメータ | 必須 | 型 | 説明 |
|---|---|---|---|
q |
いいえ | 文字列(正規表現対応) | ドメイン名で検索 |
name |
いいえ | 文字列(正規表現対応) | ドメイン名で検索 |
sort |
いいえ | 文字列 | 特定のフィールドでソート(フィールド名の前にハイフン - を付けると逆順でソート)。未指定の場合は created_at がデフォルト。 |
page |
いいえ | 数値 | 詳細は Pagination を参照 |
limit |
いいえ | 数値 | 詳細は Pagination を参照 |
例リクエスト:
curl https://fe.tiamati.email/v1/domains \
-u API_TOKEN:
ドメイン作成
POST /v1/domains
| ボディパラメータ | 必須 | 型 | 説明 |
|---|---|---|---|
domain |
はい | 文字列(FQDNまたはIP) | 完全修飾ドメイン名("FQDN")またはIPアドレス |
team_domain |
いいえ | 文字列(ドメインIDまたはドメイン名;FQDN) | このドメインを別のドメインと同じチームに自動割り当てします。これにより、このドメインのすべてのメンバーがチームメンバーとして割り当てられ、plan は自動的に team に設定されます。必要に応じて "none" に設定して明示的に無効化できますが、通常は不要です。 |
plan |
いいえ | 文字列(列挙型) | プランタイプ("free"、"enhanced_protection"、または "team" のいずれかでなければならず、デフォルトは "free" またはユーザーの現在の有料プラン) |
catchall |
いいえ | 文字列(区切られたメールアドレス)またはブール値 | デフォルトのキャッチオールエイリアスを作成します。デフォルトは true(true の場合はAPIユーザーのメールアドレスを受信者として使用し、false の場合はキャッチオールを作成しません)。文字列が渡された場合は、改行、スペース、および/またはカンマで区切られた受信者メールアドレスのリストとして扱います。 |
has_adult_content_protection |
いいえ | ブール値 | このドメインでスパムスキャナーの成人向けコンテンツ保護を有効にするかどうか |
has_phishing_protection |
いいえ | ブール値 | このドメインでスパムスキャナーのフィッシング保護を有効にするかどうか |
has_executable_protection |
いいえ | ブール値 | このドメインでスパムスキャナーの実行可能ファイル保護を有効にするかどうか |
has_virus_protection |
いいえ | ブール値 | このドメインでスパムスキャナーのウイルス保護を有効にするかどうか |
has_recipient_verification |
いいえ | ブール値 | エイリアス受信者がメールを通過させるためにメール検証リンクをクリックする必要があるかどうかのグローバルドメインデフォルト |
ignore_mx_check |
いいえ | ブール値 | ドメインの検証においてMXレコードチェックを無視するかどうか。主に高度なMX交換設定ルールを持ち、既存のMX交換を維持しつつ当社のものに転送する必要があるユーザー向け。 |
retention_days |
いいえ | 数値 | 成功裏に配信されたか永久的にエラーとなったアウトバウンドSMTPメールを保存する保持日数(0〜30の整数)。デフォルトは 0 で、これはアウトバウンドSMTPメールが即座に削除および編集されることを意味します(セキュリティのため)。 |
bounce_webhook |
いいえ | 文字列(URL)またはブール値(false) | バウンスWebhookを送信するための任意の http:// または https:// のWebhook URL。アウトバウンドSMTPの失敗(ソフトまたはハード失敗など)に関する情報をこのURLに POST リクエストで送信し、購読者管理やアウトバウンドメールのプログラム的管理が可能になります。 |
max_quota_per_alias |
いいえ | 文字列 | このドメイン名のエイリアスに対するストレージ最大クォータ。"1 GB" のような値を入力し、bytes によって解析されます。 |
Example Request:
curl -X POST https://fe.tiamati.email/v1/domains \
-u API_TOKEN: \
-d domain=example.com \
-d plan=free
ドメインの取得
GET /v1/domains/example.com
Example Request:
curl https://fe.tiamati.email/v1/domains/example.com \
-u API_TOKEN:
ドメインレコードの検証
GET /v1/domains/example.com/verify-records
Example Request:
curl https://fe.tiamati.email/v1/domains/example.com/verify-records \
-u API_TOKEN:
ドメインのSMTPレコードの検証
GET /v1/domains/example.com/verify-smtp
Example Request:
curl https://fe.tiamati.email/v1/domains/example.com/verify-smtp \
-u API_TOKEN:
ドメイン全体のキャッチオールパスワード一覧
GET /v1/domains/example.com/catch-all-passwords
Example Request:
curl https://fe.tiamati.email/v1/domains/example.com/catch-all-passwords \
-u API_TOKEN:
ドメイン全体のキャッチオールパスワードの作成
POST /v1/domains/example.com/catch-all-passwords
| Body Parameter | 必須 | タイプ | 説明 |
|---|---|---|---|
new_password |
いいえ | String | ドメイン全体のキャッチオールパスワードとして使用するカスタムの新しいパスワード。APIリクエストボディから空白または未指定にすると、ランダムで強力なパスワードが生成されます。 |
description |
いいえ | String | 組織の目的での説明のみ。 |
Example Request:
curl BASE_URL/v1/domains/example.com/catch-all-passwords \
-u API_TOKEN:
ドメイン全体のキャッチオールパスワードの削除
DELETE /v1/domains/example.com/catch-all-passwords/:token_id
Example Request:
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/catch-all-passwords/:token_id \
-u API_TOKEN:
ドメインの更新
PUT /v1/domains/example.com
| Body Parameter | 必須 | タイプ | 説明 |
|---|---|---|---|
smtp_port |
いいえ | String または Number | SMTP転送用に設定するカスタムポート(デフォルトは "25") |
has_adult_content_protection |
いいえ | Boolean | このドメインでスパムスキャナーの成人向けコンテンツ保護を有効にするかどうか |
has_phishing_protection |
いいえ | Boolean | このドメインでスパムスキャナーのフィッシング保護を有効にするかどうか |
has_executable_protection |
いいえ | Boolean | このドメインでスパムスキャナーの実行可能ファイル保護を有効にするかどうか |
has_virus_protection |
いいえ | Boolean | このドメインでスパムスキャナーのウイルス保護を有効にするかどうか |
has_recipient_verification |
いいえ | Boolean | エイリアス受信者がメールの流通のためにメール検証リンクをクリックする必要があるかどうかのグローバルドメインデフォルト設定 |
ignore_mx_check |
いいえ | Boolean | ドメインの検証時にMXレコードチェックを無視するかどうか。これは主に高度なMX交換設定ルールを持ち、既存のMX交換を維持して当社のものに転送する必要があるユーザー向けです。 |
retention_days |
いいえ | Number | 配信成功または永久エラーとなった後に送信SMTPメールを保存する保持日数を表す 0 から 30 の整数。デフォルトは 0 で、送信SMTPメールは即座に削除および編集されてセキュリティが保たれます。 |
bounce_webhook |
いいえ | String (URL) または Boolean (false) | バウンスWebhookを送信するための任意の http:// または https:// のWebhook URL。送信SMTPの失敗(ソフトまたはハード失敗など)に関する情報をこのURLに POST リクエストで送信し、購読者の管理や送信メールのプログラム的管理が可能になります。 |
max_quota_per_alias |
いいえ | String | このドメイン名のエイリアスに対する最大ストレージクォータ。 "1 GB" のような値を入力すると、bytes によって解析されます。 |
例のリクエスト:
curl -X PUT https://fe.tiamati.email/v1/domains/example.com \
-u API_TOKEN:
ドメインを削除
DELETE /v1/domains/:domain_name
例のリクエスト:
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name \
-u API_TOKEN:
招待
ドメイン招待を承認
GET /v1/domains/:domain_name/invites
例のリクエスト:
curl https://fe.tiamati.email/v1/domains/:domain_name/invites \
-u API_TOKEN:
ドメイン招待を作成
POST /v1/domains/example.com/invites
| Body Parameter | 必須 | タイプ | 説明 |
|---|---|---|---|
email |
はい | 文字列 (メールアドレス) | ドメインメンバーリストに招待するメールアドレス |
group |
はい | 文字列 (列挙可能) | ユーザーをドメインメンバーシップに追加するグループ("admin" または "user" のいずれか) |
例のリクエスト:
curl -X POST https://fe.tiamati.email/v1/domains/example.com/invites \
-u API_TOKEN: \
-d "email=user%40gmail.com" \
-d group=admin
Important
招待されるユーザーがすでに管理者が所属する他のドメインの承認済みメンバーである場合、招待は自動承認され、メールは送信されません。
ドメイン招待を削除
DELETE /v1/domains/:domain_name/invites
| Body Parameter | 必須 | タイプ | 説明 |
|---|---|---|---|
email |
はい | 文字列 (メールアドレス) | ドメインメンバーリストから削除するメールアドレス |
例のリクエスト:
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/invites \
-u API_TOKEN:
メンバー
ドメインメンバーを更新
PUT /v1/domains/example.com/members/:member_id
| Body Parameter | 必須 | タイプ | 説明 |
|---|---|---|---|
group |
はい | 文字列 (列挙可能) | ユーザーをドメインメンバーシップに更新するグループ("admin" または "user" のいずれか) |
例のリクエスト:
curl -X PUT https://fe.tiamati.email/v1/domains/example.com/members/:member_id \
-u API_TOKEN:
ドメインメンバーを削除
DELETE /v1/domains/:domain_name/members/:member_id
例のリクエスト:
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/members/:member_id \
-u API_TOKEN:
エイリアス
エイリアスパスワードを生成
メールで指示を送らない場合、ユーザー名とパスワードは成功したリクエストのJSONレスポンスボディに { username: 'alias@yourdomain.com', password: 'some-generated-password' } の形式で含まれます。
POST /v1/domains/example.com/aliases/:alias_id/generate-password
| Body Parameter | 必須 | タイプ | 説明 |
|---|---|---|---|
new_password |
いいえ | 文字列 | エイリアスに使用するカスタム新パスワード。APIリクエストボディから空白または未指定にすると、ランダムで強力なパスワードが生成されます。 |
password |
いいえ | 文字列 | 既存のエイリアスパスワード。既存のIMAPメールボックスストレージを削除せずにパスワードを変更する場合に使用します(既存のパスワードがわからない場合は下記の is_override オプションを参照してください)。 |
is_override |
いいえ | ブール値 | 注意して使用してください: 既存のエイリアスパスワードとデータベースを完全に上書きし、既存のIMAPストレージを永久に削除し、エイリアスのSQLiteメールデータベースを完全にリセットします。既存のメールボックスがある場合は可能な限りバックアップを取ってください。 |
emailed_instructions |
いいえ | 文字列 | エイリアスのパスワードとセットアップ手順を送信するメールアドレス。 |
Example Request:
curl -X POST https://fe.tiamati.email/v1/domains/example.com/aliases/:alias_id/generate-password \
-u API_TOKEN:
ドメインエイリアス一覧
Note
2024年11月1日以降、ドメイン一覧およびドメインエイリアス一覧のAPIエンドポイントは、1ページあたりの最大結果数がデフォルトで1000になります。 この動作を早期に適用したい場合は、エンドポイントのURLに追加のクエリ文字列パラメータとして?paginate=trueを渡すことができます。 詳細はページネーションをご覧ください。
GET /v1/domains/example.com/aliases
| クエリ文字列パラメータ | 必須 | 型 | 説明 |
|---|---|---|---|
q |
いいえ | 文字列(正規表現対応) | ドメイン内のエイリアスを名前、ラベル、または受信者で検索 |
name |
いいえ | 文字列(正規表現対応) | ドメイン内のエイリアスを名前で検索 |
recipient |
いいえ | 文字列(正規表現対応) | ドメイン内のエイリアスを受信者で検索 |
sort |
いいえ | 文字列 | 特定のフィールドでソート(フィールドの前に単一のハイフン-を付けるとそのフィールドの逆順でソート)。未設定の場合はcreated_atがデフォルト。 |
page |
いいえ | 数値 | 詳細はページネーションをご覧ください |
limit |
いいえ | 数値 | 詳細はページネーションをご覧ください |
Example Request:
curl https://fe.tiamati.email/v1/domains/example.com/aliases?pagination=true \
-u API_TOKEN:
新しいドメインエイリアスを作成
POST /v1/domains/example.com/aliases
| ボディパラメータ | 必須 | 型 | 説明 |
|---|---|---|---|
name |
いいえ | 文字列 | エイリアス名(指定しないか空白の場合はランダムなエイリアスが生成されます) |
recipients |
いいえ | 文字列または配列 | 受信者のリスト(改行・空白・カンマ区切りの文字列、または有効なメールアドレス、完全修飾ドメイン名("FQDN")、IPアドレス、Webhook URLの配列)。指定しないか空の配列の場合は、APIリクエストを行ったユーザーのメールアドレスが受信者として設定されます) |
description |
いいえ | 文字列 | エイリアスの説明 |
labels |
いいえ | 文字列または配列 | ラベルのリスト(改行・空白・カンマ区切りの文字列、または配列) |
has_recipient_verification |
いいえ | ブール値 | 受信者がメールの流通を許可するためにメール検証リンクをクリックすることを要求(リクエストボディで明示的に設定しない場合はドメインの設定が適用されます) |
is_enabled |
いいえ | ブール値 | このエイリアスを有効または無効にするか(無効の場合、メールはどこにもルーティングされず成功ステータスコードが返されます)。値が渡された場合はbooleanを使ってブール値に変換されます。 |
error_code_if_disabled |
いいえ | 数値(250、421、または550のいずれか) |
is_enabledがfalseの場合、このエイリアス宛の受信メールは250(静かにどこにも配信しない、例:ブラックホールや/dev/null)、421(ソフトリジェクト;約5日間リトライ)、または550(永久失敗および拒否)のいずれかで拒否されます。デフォルトは250です。 |
has_imap |
いいえ | ブール値 | このエイリアスのIMAPストレージを有効または無効にするか(無効の場合、受信メールはIMAPストレージに保存されません)。値が渡された場合はbooleanを使ってブール値に変換されます。 |
has_pgp |
いいえ | ブール値 | このエイリアスのpublic_keyを使ってIMAP/POP3/CalDAV/CardDAV暗号化メールストレージのためのOpenPGP暗号化を有効または無効にするか。 |
public_key |
いいえ | 文字列 | ASCII Armor形式のOpenPGP公開鍵(例はこちら、例:support@forwardemail.netのGPG鍵)。これはhas_pgpがtrueに設定されている場合のみ適用されます。FAQのエンドツーエンド暗号化についてはこちらをご覧ください。 |
max_quota |
いいえ | 文字列 | このエイリアスのストレージ最大クォータ。空白にするとドメインの現在の最大クォータにリセットされます。例えば「1 GB」のような値を指定可能で、bytesで解析されます。この値はドメイン管理者のみが調整可能です。 |
vacation_responder_is_enabled |
いいえ | ブール値 | 自動休暇応答を有効または無効にするか |
vacation_responder_start_date |
いいえ | 文字列 | 休暇応答の開始日(有効で開始日が設定されていない場合は既に開始しているとみなします)。MM/DD/YYYY、YYYY-MM-DDなどの形式や、dayjsによるスマートパースで他の日付形式もサポートしています。 |
vacation_responder_end_date |
いいえ | 文字列 | 休暇応答の終了日(有効で終了日が設定されていない場合は終了しないものとみなし、永続的に応答します)。MM/DD/YYYY、YYYY-MM-DDなどの形式や、dayjsによるスマートパースで他の日付形式もサポートしています。 |
vacation_responder_subject |
いいえ | 文字列 | 休暇応答のプレーンテキスト件名(例:"Out of Office")。ここではstriptagsを使ってすべてのHTMLを除去します。 |
vacation_responder_message |
いいえ | 文字列 | 休暇応答のプレーンテキストメッセージ(例:"I will be out of office until February.")。ここではstriptagsを使ってすべてのHTMLを除去します。 |
Example Request:
curl -X POST https://fe.tiamati.email/v1/domains/example.com/aliases \
-u API_TOKEN:
ドメインエイリアスの取得
ドメインエイリアスは、その id または name の値で取得できます。
GET /v1/domains/:domain_name/aliases/:alias_id
Example Request:
curl https://fe.tiamati.email/v1/domains/:domain_name/aliases/:alias_id \
-u API_TOKEN:
GET /v1/domains/:domain_name/aliases/:alias_name
Example Request:
curl https://fe.tiamati.email/v1/domains/:domain_name/aliases/:alias_name \
-u API_TOKEN:
ドメインエイリアスの更新
PUT /v1/domains/example.com/aliases/:alias_id
| Body Parameter | 必須 | 型 | 説明 |
|---|---|---|---|
name |
いいえ | 文字列 | エイリアス名 |
recipients |
いいえ | 文字列 または 配列 | 受信者リスト(改行・スペース・カンマ区切りの文字列、または有効なメールアドレス、完全修飾ドメイン名("FQDN")、IPアドレス、Webhook URLの配列) |
description |
いいえ | 文字列 | エイリアスの説明 |
labels |
いいえ | 文字列 または 配列 | ラベルのリスト(改行・スペース・カンマ区切りの文字列、または配列) |
has_recipient_verification |
いいえ | ブール値 | 受信者がメールの流通を許可するためにメール検証リンクをクリックすることを要求するかどうか(リクエストボディで明示的に設定されていない場合はドメインの設定がデフォルトで使用されます) |
is_enabled |
いいえ | ブール値 | このエイリアスを有効または無効にするかどうか(無効の場合、メールはどこにもルーティングされず成功ステータスコードを返します)。値が渡された場合は、boolean を使ってブール値に変換されます |
error_code_if_disabled |
いいえ | 数値(250、421、または 550 のいずれか) |
is_enabled が false の場合、このエイリアスへの受信メールは 250(静かにどこにも配信しない、例:ブラックホールや /dev/null)、421(ソフトリジェクト;約5日間リトライ)、または 550(恒久的な失敗と拒否)のいずれかで拒否されます。デフォルトは 250 です。 |
has_imap |
いいえ | ブール値 | このエイリアスのIMAPストレージを有効または無効にするかどうか(無効の場合、受信したメールはIMAPストレージに保存されません)。値が渡された場合は、boolean を使ってブール値に変換されます |
has_pgp |
いいえ | ブール値 | エイリアスの public_key を使ってIMAP/POP3/CalDAV/CardDAV暗号化メールストレージのためのOpenPGP暗号化を有効または無効にするかどうか |
public_key |
いいえ | 文字列 | ASCII Armor形式のOpenPGP公開鍵(例はこちら;例:support@forwardemail.net のGPG鍵)。これは has_pgp が true に設定されている場合にのみ適用されます。FAQのエンドツーエンド暗号化についてはこちらをご覧ください。 |
max_quota |
いいえ | 文字列 | このエイリアスのストレージ最大クォータ。空欄にするとドメインの現在の最大クォータにリセットされます。または "1 GB" のような値を入力可能で、bytesで解析されます。この値はドメイン管理者のみが調整可能です。 |
vacation_responder_is_enabled |
いいえ | ブール値 | 自動休暇応答機能を有効または無効にするかどうか |
vacation_responder_start_date |
いいえ | 文字列 | 休暇応答の開始日(有効で開始日が設定されていない場合はすでに開始されているとみなされます)。MM/DD/YYYY、YYYY-MM-DD などの形式や、dayjs を使ったスマートパースによる他の形式をサポートしています。 |
vacation_responder_end_date |
いいえ | 文字列 | 休暇応答の終了日(有効で終了日が設定されていない場合は無期限に応答し続けるとみなされます)。MM/DD/YYYY、YYYY-MM-DD などの形式や、dayjs を使ったスマートパースによる他の形式をサポートしています。 |
vacation_responder_subject |
いいえ | 文字列 | 休暇応答の件名(プレーンテキスト)、例:"Out of Office"。ここでは striptags を使ってすべてのHTMLを除去します。 |
vacation_responder_message |
いいえ | 文字列 | 休暇応答のメッセージ(プレーンテキスト)、例:"I will be out of office until February."。ここでは striptags を使ってすべてのHTMLを除去します。 |
例のリクエスト:
curl -X PUT https://fe.tiamati.email/v1/domains/example.com/aliases/:alias_id \
-u API_TOKEN:
ドメインエイリアスの削除
DELETE /v1/domains/:domain_name/aliases/:alias_id
例のリクエスト:
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/aliases/:alias_id \
-u API_TOKEN:
暗号化
無料プランでも追加料金なしでレコードを暗号化できます。プライバシーは機能ではなく、製品のあらゆる側面に本質的に組み込まれているべきものです。Privacy Guidesのディスカッションや当社のGitHubの課題で多くの要望があったため、これを追加しました。
TXTレコードの暗号化
POST /v1/encrypt
| Body Parameter | 必須 | 型 | 説明 |
|---|---|---|---|
input |
はい | 文字列 | 有効なForward EmailのプレーンテキストTXTレコード |
例のリクエスト:
curl -X POST https://fe.tiamati.email/v1/encrypt \
-d "input=user@gmail.com"