Skip to content
このページは AI の支援により作成・翻訳されました。誤りがあれば、改善にご協力ください。 GitHub で編集

設定リファレンス ​

このページはすべてのPRX-Email設定オプション、環境変数、ランタイム設定の完全リファレンスです。

トランスポート設定 ​

EmailTransportConfig構造体はIMAPとSMTP接続の両方を設定します:

rust
use prx_email::plugin::{
    EmailTransportConfig, ImapConfig, SmtpConfig, AuthConfig,
    AttachmentPolicy, AttachmentStoreConfig,
};

let config = EmailTransportConfig {
    imap: ImapConfig { /* ... */ },
    smtp: SmtpConfig { /* ... */ },
    attachment_store: Some(AttachmentStoreConfig { /* ... */ }),
    attachment_policy: AttachmentPolicy::default(),
};

IMAP設定 ​

フィールドタイプデフォルト説明
imap.hostString(必須)IMAPサーバーホスト名
imap.portu16(必須)IMAPサーバーポート(通常993)
imap.userString(必須)IMAPユーザー名
imap.auth.passwordOption<String>NoneLOGINアーカイブのパスワード
imap.auth.oauth_tokenOption<String>NoneXOAUTH2のOAuthトークン

SMTP設定 ​

フィールドタイプデフォルト説明
smtp.hostString(必須)SMTPサーバーホスト名
smtp.portu16(必須)SMTPサーバーポート(465または587)
smtp.userString(必須)SMTPユーザー名
smtp.auth.passwordOption<String>NonePLAIN/LOGINのパスワード
smtp.auth.oauth_tokenOption<String>NoneXOAUTH2のOAuthトークン

検証ルール ​

  • imap.hostとsmtp.hostは空であってはならない
  • imap.userとsmtp.userは空であってはならない
  • 各プロトコルでpasswordまたはoauth_tokenのいずれか一方のみを設定する必要がある
  • attachment_policy.max_size_bytesは0より大きくなければならない
  • attachment_policy.allowed_content_typesは空であってはならない

ストレージ設定 ​

StoreConfig ​

フィールドタイプデフォルト説明
enable_walbooltrueWALジャーナルモードを有効化
busy_timeout_msu645000SQLiteのビジータイムアウト(ミリ秒)
wal_autocheckpoint_pagesi641000自動チェックポイント間のページ数
synchronousSynchronousModeNormal同期モード:Full、Normal、Off

適用されるSQLiteプラグマ ​

sql
PRAGMA foreign_keys = ON;
PRAGMA journal_mode = WAL;        -- when enable_wal = true
PRAGMA synchronous = NORMAL;      -- matches synchronous setting
PRAGMA wal_autocheckpoint = 1000; -- matches wal_autocheckpoint_pages

添付ファイルポリシー ​

AttachmentPolicy ​

フィールドタイプデフォルト説明
max_size_bytesusize26,214,400(25 MiB)最大添付ファイルサイズ
allowed_content_typesHashSet<String>以下を参照許可されたMIMEタイプ

デフォルトで許可されるMIMEタイプ ​

MIMEタイプ説明
application/pdfPDFドキュメント
image/jpegJPEG画像
image/pngPNG画像
text/plainプレーンテキストファイル
application/zipZIPアーカイブ

AttachmentStoreConfig ​

フィールドタイプデフォルト説明
enabledbool(必須)添付ファイルの永続化を有効化
dirString(必須)保存された添付ファイルのルートディレクトリ

パス安全性

添付ファイルのパスはディレクトリトラバーサル攻撃に対して検証されます。設定されたdirルート外で解決されるパス(シンボリックリンクベースのエスケープを含む)はすべて拒否されます。

同期ランナー設定 ​

SyncRunnerConfig ​

フィールドタイプデフォルト説明
max_concurrencyusize4ランナーティックごとの最大ジョブ数
base_backoff_secondsi6410失敗時の初期バックオフ
max_backoff_secondsi64300最大バックオフ(5分)

環境変数 ​

OAuthトークン管理 ​

変数説明
{PREFIX}_IMAP_OAUTH_TOKENIMAPのOAuthアクセストークン
{PREFIX}_SMTP_OAUTH_TOKENSMTPのOAuthアクセストークン
{PREFIX}_IMAP_OAUTH_EXPIRES_ATIMAPトークンの期限切れ(Unix秒)
{PREFIX}_SMTP_OAUTH_EXPIRES_ATSMTPトークンの期限切れ(Unix秒)

デフォルトのプレフィックスはPRX_EMAILです。ランタイムでこれらを読み込むにはreload_auth_from_env("PRX_EMAIL")を使用します。

WASMプラグイン ​

変数デフォルト説明
PRX_EMAIL_ENABLE_REAL_NETWORK未設定(無効)WASMコンテキストから実際のIMAP/SMTPを有効にするには1に設定

API制限 ​

制限値説明
一覧/検索の最小制限1最小limitパラメータ
一覧/検索の最大制限500最大limitパラメータ
デバッグメッセージの切り捨て160文字プロバイダのデバッグメッセージは切り捨てられる
メッセージスニペット長120文字自動生成されるメッセージスニペット

エラーコード ​

コード説明
Validation入力検証失敗(空フィールド、範囲外の制限、不明なフィーチャー)
FeatureDisabledフィーチャーフラグによりブロックされた操作
NetworkIMAP/SMTP接続またはプロトコルエラー
Providerメールプロバイダが操作を拒否
StorageSQLiteデータベースエラー

アウトボックス定数 ​

定数値説明
バックオフのベース5秒初期リトライバックオフ
バックオフの計算式5 * 2^retries指数増加
最大リトライ無制限バックオフの増加でキャップ
べき等性キーoutbox-{id}-{retries}決定論的なMessage-ID

フィーチャーフラグ ​

フラグ説明リスクレベル
inbox_readメッセージの一覧表示と取得低
inbox_searchクエリでメッセージを検索低
email_send新しいメールを送信中
email_reply既存のメールに返信中
outbox_retry失敗したアウトボックスメッセージをリトライ低

ロギング ​

PRX-Emailは以下の形式で構造化ログをstderrに出力します:

[prx_email][structured] {"event":"...","account":...,"folder":...,"message_id":...,"run_id":...,"error_code":...}
[prx_email][debug] context | details

セキュリティ ​

  • OAuthトークン、パスワード、APIキーはログに記録されない
  • メールアドレスはデバッグログで削除される(例:a***@example.com)
  • プロバイダのデバッグメッセージはサニタイズされる:認証ヘッダーが削除され、出力は160文字に切り捨てられる

次のステップ ​

Released under the Apache-2.0 License.