mirror of
https://github.com/rustmailer/bichon.git
synced 2026-08-03 07:48:34 +02:00
feat(smtp): implement built-in SMTP server for mail ingestion
- Add lightweight SMTP server support using `lettre` and `tokio`. - Implement `DATA_SMTP_INGEST` permission check for inbound mail. - Support real-time email archiving via SMTP protocol. - Integrate with existing EML index manager for automated indexing.
This commit is contained in:
@@ -40,6 +40,7 @@ export function getPermissions(t: (key: string) => string) {
|
||||
{ label: t('permission.data.delete'), value: 'data:delete' },
|
||||
{ label: t('permission.data.export_batch'), value: 'data:export:batch' },
|
||||
{ label: t('permission.data.import_batch'), value: 'data:import:batch' },
|
||||
{ label: t('permission.data.smtp_ingest'), value: 'data:smtp:ingest' },
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@@ -80,6 +80,7 @@ function getAccountCategories(t: (key: string) => string) {
|
||||
'data:delete',
|
||||
'data:export:batch',
|
||||
'data:import:batch',
|
||||
'data:smtp:ingest',
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
@@ -86,6 +86,7 @@ const CATEGORY_MAP: Record<'Global' | 'Account', { titleKey: string; keys: strin
|
||||
'data:delete',
|
||||
'data:export:batch',
|
||||
'data:import:batch',
|
||||
'data:smtp:ingest',
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
@@ -58,7 +58,7 @@ export function PermissionsDialog({ currentRow, open, onOpenChange }: Props) {
|
||||
account: [
|
||||
{
|
||||
titleKey: "roles.categories.account_resource",
|
||||
keys: ["account:manage", "account:read_details", "data:read", "data:manage", "data:raw:download", "data:delete", "data:export:batch", "data:import:batch"]
|
||||
keys: ["account:manage", "account:read_details", "data:read", "data:manage", "data:raw:download", "data:delete", "data:export:batch", "data:import:batch", "data:smtp:ingest"]
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "حذف رسائل البريد الإلكتروني من جميع الحسابات",
|
||||
"export_batch": "تصدير دفعي للبيانات المخصصة",
|
||||
"export_batch_all": "تصدير دفعي لجميع البيانات",
|
||||
"import_batch": "استيراد دفعي لبيانات البريد الإلكتروني"
|
||||
"import_batch": "استيراد دفعي لبيانات البريد الإلكتروني",
|
||||
"smtp_ingest": "استيعاب رسائل البريد الإلكتروني عبر بروتوكول SMTP"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "Slette e-mails fra alle konti",
|
||||
"export_batch": "Batch-eksportere tildelte data",
|
||||
"export_batch_all": "Batch-eksportere alle data",
|
||||
"import_batch": "Batch-importere e-maildata"
|
||||
"import_batch": "Batch-importere e-maildata",
|
||||
"smtp_ingest": "Indsend e-mails via SMTP-protokol"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "E-Mails aller Konten löschen",
|
||||
"export_batch": "Zugewiesene Daten stapelweise exportieren",
|
||||
"export_batch_all": "Alle Daten stapelweise exportieren",
|
||||
"import_batch": "E-Mail-Daten stapelweise importieren"
|
||||
"import_batch": "E-Mail-Daten stapelweise importieren",
|
||||
"smtp_ingest": "E-Mails über das SMTP-Protokoll aufnehmen"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "Delete Emails from All Accounts",
|
||||
"export_batch": "Batch Export Assigned Data",
|
||||
"export_batch_all": "Batch Export All Data",
|
||||
"import_batch": "Batch Import Email Data"
|
||||
"import_batch": "Batch Import Email Data",
|
||||
"smtp_ingest": "Ingest Emails via SMTP Protocol"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "Eliminar correos de todas las cuentas",
|
||||
"export_batch": "Exportar datos asignados por lotes",
|
||||
"export_batch_all": "Exportar todos los datos por lotes",
|
||||
"import_batch": "Importar datos de correo por lotes"
|
||||
"import_batch": "Importar datos de correo por lotes",
|
||||
"smtp_ingest": "Ingerir correos electrónicos a través del protocolo SMTP"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "Kaikkien tilien sähköpostien poistaminen",
|
||||
"export_batch": "Tietojen erävienti",
|
||||
"export_batch_all": "Kaikkien tietojen erävienti",
|
||||
"import_batch": "Sähköpostitietojen erätuonti"
|
||||
"import_batch": "Sähköpostitietojen erätuonti",
|
||||
"smtp_ingest": "Vastaanota sähköposteja SMTP-protokollan kautta"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "Supprimer les e-mails de tous les comptes",
|
||||
"export_batch": "Exporter les données attribuées par lot",
|
||||
"export_batch_all": "Exporter toutes les données par lot",
|
||||
"import_batch": "Importer des données e-mail par lot"
|
||||
"import_batch": "Importer des données e-mail par lot",
|
||||
"smtp_ingest": "Ingérer des e-mails via le protocole SMTP"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "Eliminare le email di tutti gli account",
|
||||
"export_batch": "Esportare i dati assegnati in batch",
|
||||
"export_batch_all": "Esportare tutti i dati in batch",
|
||||
"import_batch": "Importare dati email in batch"
|
||||
"import_batch": "Importare dati email in batch",
|
||||
"smtp_ingest": "Acquisire e-mail tramite protocollo SMTP"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "すべてのアカウントのメールを削除",
|
||||
"export_batch": "割り当てデータを一括エクスポート",
|
||||
"export_batch_all": "すべてのデータを一括エクスポート",
|
||||
"import_batch": "メールデータを一括インポート"
|
||||
"import_batch": "メールデータを一括インポート",
|
||||
"smtp_ingest": "SMTPプロトコル経由でメールを取り込む"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "모든 계정의 이메일 삭제",
|
||||
"export_batch": "할당 데이터 일괄 내보내기",
|
||||
"export_batch_all": "모든 데이터 일괄 내보내기",
|
||||
"import_batch": "이메일 데이터 일괄 가져오기"
|
||||
"import_batch": "이메일 데이터 일괄 가져오기",
|
||||
"smtp_ingest": "SMTP 프로토콜을 통해 이메일 수집"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "E-mails van alle accounts verwijderen",
|
||||
"export_batch": "Toegewezen gegevens batchgewijs exporteren",
|
||||
"export_batch_all": "Alle gegevens batchgewijs exporteren",
|
||||
"import_batch": "E-mailgegevens batchgewijs importeren"
|
||||
"import_batch": "E-mailgegevens batchgewijs importeren",
|
||||
"smtp_ingest": "E-mails opnemen via het SMTP-protocol"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "Slette e-poster fra alle kontoer",
|
||||
"export_batch": "Batch-eksportere tildelte data",
|
||||
"export_batch_all": "Batch-eksportere alle data",
|
||||
"import_batch": "Batch-importere e-postdata"
|
||||
"import_batch": "Batch-importere e-postdata",
|
||||
"smtp_ingest": "Hent e-post via SMTP-protokoll"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "Usuwanie wiadomości e-mail ze wszystkich kont",
|
||||
"export_batch": "Eksport zbiorczy przypisanych danych",
|
||||
"export_batch_all": "Eksport zbiorczy wszystkich danych",
|
||||
"import_batch": "Import zbiorczy danych e-mail"
|
||||
"import_batch": "Import zbiorczy danych e-mail",
|
||||
"smtp_ingest": "Pobieranie wiadomości e-mail za pośrednictwem protokołu SMTP"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "Excluir e-mails de todas as contas",
|
||||
"export_batch": "Exportar dados atribuídos em lote",
|
||||
"export_batch_all": "Exportar todos os dados em lote",
|
||||
"import_batch": "Importar dados de e-mail em lote"
|
||||
"import_batch": "Importar dados de e-mail em lote",
|
||||
"smtp_ingest": "Ingerir e-mails via protocolo SMTP"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "Удаление писем всех аккаунтов",
|
||||
"export_batch": "Пакетный экспорт назначенных данных",
|
||||
"export_batch_all": "Пакетный экспорт всех данных",
|
||||
"import_batch": "Пакетный импорт почтовых данных"
|
||||
"import_batch": "Пакетный импорт почтовых данных",
|
||||
"smtp_ingest": "Прием электронной почты через протокол SMTP"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "Ta bort e-postmeddelanden från alla konton",
|
||||
"export_batch": "Batch-exportera tilldelad data",
|
||||
"export_batch_all": "Batch-exportera all data",
|
||||
"import_batch": "Batch-importera e-postdata"
|
||||
"import_batch": "Batch-importera e-postdata",
|
||||
"smtp_ingest": "Hämta e-post via SMTP-protokoll"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "刪除所有帳戶的郵件",
|
||||
"export_batch": "批次匯出指派帳戶的資料",
|
||||
"export_batch_all": "批次匯出所有資料",
|
||||
"import_batch": "批次匯入郵件資料"
|
||||
"import_batch": "批次匯入郵件資料",
|
||||
"smtp_ingest": "透過 SMTP 協定歸檔郵件"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
@@ -1132,7 +1132,8 @@
|
||||
"delete_all": "删除所有账户的邮件",
|
||||
"export_batch": "批量导出分配账户的数据",
|
||||
"export_batch_all": "批量导出所有数据",
|
||||
"import_batch": "批量导入邮件数据"
|
||||
"import_batch": "批量导入邮件数据",
|
||||
"smtp_ingest": "通过 SMTP 协议归档邮件"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
|
||||
Reference in New Issue
Block a user