Добавьте proxy рядом с настройками почтового ящика, когда ImapFlow должен достичь сервера IMAP через прокси HTTP CONNECT:

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.

Две детали, которые стоит проверить

  • Порт туннеля — 993. Прокси должен разрешать CONNECT к imap.example:993. Посредник, разрешающий туннели к сайтам только на 443, может отклонить этот запрос даже с действительными учётными данными прокси.
  • Почтовый ящик остаётся защищённым TLS. secure: true относится к соединению почтового ящика. Схема http в URL прокси обозначает слушатель посредника, а не замену имени хоста IMAP.

Если посреднику нужен вход, передайте его учётную запись в поддерживаемом ImapFlow формате URL прокси. Храните учётную запись почтового ящика в auth. Этот пример использует стандартный путь прокси Node; собственный runtime-транспорт ImapFlow нельзя сочетать с proxy.

Похожие статьи