コンテンツにスキップ

メール

アプリからトランザクションメールを送信します。送信者IDの管理と配信状況の追跡は、アプリの Admin > Email から行えます。

すべての Proyecta アプリはトランザクションメールを送信できます。送信者IDを確認したら、アプリのコードから送信できます。別途メールプロバイダーのアカウントは不要です。

builder の Admin > Email を開くか、公開済みサイトの /admin にアクセスしてください。2つのパートで構成されています。

パート 用途
Identities 送信者のメールアドレスまたはドメインの追加と確認
Sent 配信ステータス(送信済み、配信済み、バウンスなど)とともに送信済みメールを閲覧

コードを書くことなく、新しい送信者IDの追加やメール配信履歴の閲覧が行えます。

  1. 送信者ID(メールアドレスまたはドメイン)を作成して確認する — 管理パネルで行います
  2. 送信する — アプリから useSendEmail() を使うか、管理パネルからキャンペーン用に送信します

共有アドレス(@proyectamail.com)から送信する

Section titled “共有アドレス(@proyectamail.com)から送信する”

最も簡単な方法は、Proyecta の共有送信ドメイン @proyectamail.com 上のアドレスを1つ取得することです。作成した瞬間に確認が完了します。プラットフォームがそのドメインを所有しているため、DNS レコードの設定は一切不要です。

アプリの管理パネルの Emails セクションで希望のアドレスを入力するだけで、すぐに使用できます。

単一アドレスは @proyectamail.com のみで利用できます。別のドメイン(例:hello@myapp.com)でのアドレス取得は拒否されます。独自ドメインから送信したい場合は、ドメイン全体を確認してください(下記参照)。共有アドレスはグローバルで予約されるため、同じ @proyectamail.com 送信者として2つのアプリが送信することはできません。

独自ドメインを確認する(Pro)

Section titled “独自ドメインを確認する(Pro)”

独自ドメインから、そのドメインの任意のアドレス(hello@support@noreply@ など)で送信するには、ドメイン全体を確認します。共有の @proyectamail.com アドレスとは異なり、カスタムドメインは即座には確認されません。

同じ Emails セクションでドメインを追加してください。メールプロバイダーに登録され、DNS に公開すべき SPF、DKIM、DMARC レコードが表示されます。それらのレコードが伝播してプロバイダーが確認するまで、送信者は pending 状態のままです。確認が完了すると verified に変わります。レコードを公開したら、再確認ボタンを使用してください。

DNS ベースのドメイン確認は完全に実装済みです。レコードはプロバイダーによって生成され、再確認のたびにステータスが再ポーリングされます。

内部の仕組み: Proyecta は送信ドメインをメール認証プロバイダー(Resend)で認証し、メッセージをトランザクションプロバイダー(SendGrid)経由で配信します。どちらのアカウントも自分で管理する必要はありません。

アプリのページからは、useSendEmail() フックを使ってメールを送信します。テンプレートを選択して変数を渡すと、プラットフォームがアプリの言語でメッセージを描画して送信します。

import { useSendEmail } from '@/hooks/useEmail.ts';
function ConfirmButton({ booking }) {
const { send, isPending, error } = useSendEmail();
return (
<button
disabled={isPending}
onClick={() =>
send({
template: 'booking_confirmation',
variables: { date: booking.date, service: booking.service },
})
}
>
Email me the details
</button>
);
}

渡す必要がないものに注目してください。宛先、件名、HTML は不要です。各テンプレートは独自の送信先を宣言しています。

  • self(予約・注文確認、ウェルカムメールなど)→ セッションから取得した、ログイン中のユーザー自身のアドレス
  • ownerowner_alert)→ アプリの管理者

どちらもログイン済みのセッションが必要です。これは意図的な設計であり、仕様の抜けではありません。呼び出しを認証する公開可能なキーはページのソースコードに含まれるため、任意の宛先への送信を許可すると、誰でもあなたのアプリをスパムリレーとして利用できてしまいます。匿名の訪問者からの通知にはフォームを使用してください。フォームの送信は、所有者へのメール送信と送信者への確認が自動的に行われ、ブラウザから偽造することができません。

エラーは PlatformApiError として届きます。401(セッションが必要)、403(このアプリでテンプレートが有効化されていない)、429(レート制限 — メッセージを表示してリトライを促す)、422(メールアドレスが登録されていない)。

管理パネルの Sent タブには、アプリが送信したすべてのメールが最新の配信イベント(delivered、opened、clicked、bounced、complained)とともに一覧表示されます。通常、このためにコードを書く必要はありません。

各エントリにはステータス(sentdeliveredopenedclickedbouncedcomplained)が表示され、任意のメッセージを開いて送信された HTML とテキストの内容を確認できます。配信が失敗している場合は、まずここを確認してください。

これらを手動で書く必要はありません。

  • "Verify hello@myapp.com as a sending identity."
  • "Email the customer a confirmation after they finish booking."
  • "After a successful checkout, send the customer their receipt."
  • "Show me the last 20 emails we've sent and whether they bounced."
  • from アドレスは確認済みのIDである必要があります。 未確認のアドレスで送信するとエラーが返されます。
  • 月間の送信上限は Proyecta のプランによって異なります。
  • テンプレートエディター — builder でトランザクションテンプレートをビジュアルに設計できる機能
  • Bulk/batch send endpoint — 大量メール送信用