ImapFlow が HTTP CONNECT プロキシ経由で IMAP サーバーに到達する必要がある場合は、メールボックスの設定と並べて proxy を追加します。

import { ImapFlow } from 'imapflow';

const client = new ImapFlow({
  host: 'imap.example',
  port: 993,
  secure: true,
  auth: mailboxCredentials,
  proxy: 'http://proxy.example:8080',
});

mailboxCredentials にはアプリケーションの IMAP アカウントが入ります。このクライアントは、既存の接続、メールボックス操作、ログアウトまたは失敗時の後始末の流れに使います。公開された中間サービスが許される一般公開のメールサービスでは、HTTP プロキシ一覧 がプロキシの認証情報なしでプロキシ URL の候補を提供します。実際の IMAP ホストとポートへの到達を確認してください。

確認しておきたい 2 点

  • トンネルのポートは 993 です。 プロキシは imap.example:993 への CONNECT を許可する必要があります。Web サイトのトンネルを 443 だけで許可する中間サービスは、有効なプロキシ認証情報があってもこの要求を拒否することがあります。
  • メールボックスは TLS で保護されたままです。 secure: true はメールボックス接続に適用されます。プロキシ URL の http スキームは中間サービスの待ち受けを示すもので、IMAP ホスト名の置き換えではありません。

中間サービスがログインを求める場合は、ImapFlow が対応するプロキシ URL 形式でそのアカウントを渡します。メールボックスのアカウントは auth に残します。この例は標準の Node プロキシ経路を使います。ImapFlow 独自のランタイム転送は proxy と組み合わせられません。

関連記事