Package com.bytedesk.core.email
Class EmailSyncService
java.lang.Object
com.bytedesk.core.email.EmailSyncService
邮件同步服务
负责管理和监控邮件账户的收发邮件
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final EmailMessageRestService
private final EmailRepository
private final EmailRestService
private final ScheduledExecutorService
private final Map<String,
ScheduledFuture<?>> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate ZonedDateTime
convertToZonedDateTime
(Date date) 将 Date 转换为 ZonedDateTimeprivate String
extractAttachments
(jakarta.mail.Message message) 提取附件信息private String
extractMessageId
(jakarta.mail.Message message) 提取邮件的 Message-IDprivate String
generateMessageId
(jakarta.mail.Message message) 生成邮件ID(当邮件没有 Message-ID 时)int
获取当前运行的同步任务数量private Long
getMessageSize
(jakarta.mail.Message message) 获取邮件大小获取所有同步任务的概览状态getSyncStatus
(String emailUid) 获取同步任务状态信息boolean
isSyncRunning
(String emailUid) 检查指定邮件配置是否正在同步private void
processIncomingMessage
(jakarta.mail.Message message, EmailEntity emailEntity) 处理收到的邮件消息void
restartEmailSync
(EmailEntity emailEntity) 重启邮件同步任务void
shutdown()
关闭服务void
startBatchSyncTasks
(List<EmailEntity> emailEntities) 批量启动邮件同步任务void
startEmailSync
(EmailEntity emailEntity) 启动邮件同步任务void
停止所有同步任务void
stopEmailSync
(String emailUid) 停止邮件同步任务private void
syncEmailsForAccount
(EmailEntity emailEntity) 同步指定邮件账户的邮件private void
syncEmailsForAccountByUid
(String emailUid) 通过UID同步指定邮件账户的邮件(从数据库获取最新数据)private void
syncExchangeEmails
(EmailEntity emailEntity) 同步Exchange邮件private void
syncImapEmails
(EmailEntity emailEntity) 同步IMAP邮件private void
syncPop3Emails
(EmailEntity emailEntity) 同步POP3邮件boolean
testEmailConnection
(String emailUid) 测试邮件配置连接boolean
triggerManualSync
(String emailUid) 手动触发单次邮件同步private void
updateConnectionStatus
(EmailEntity emailEntity, EmailConnectionStatusEnum status, String errorMessage) 更新连接状态private void
updateLastSyncTime
(EmailEntity emailEntity) 更新最后同步时间private boolean
verifyEmailConfiguration
(EmailEntity emailEntity) 验证邮件配置private boolean
verifyExchangeConfiguration
(EmailEntity emailEntity) 验证Exchange配置private boolean
verifyImapConfiguration
(EmailEntity emailEntity) 验证IMAP配置private boolean
verifyPop3Configuration
(EmailEntity emailEntity) 验证POP3配置
-
Field Details
-
emailRestService
-
emailRepository
-
emailMessageRestService
-
syncTasks
-
scheduledExecutorService
-
-
Constructor Details
-
EmailSyncService
public EmailSyncService()
-
-
Method Details
-
startEmailSync
启动邮件同步任务- Parameters:
emailEntity
- 邮件配置实体
-
stopEmailSync
停止邮件同步任务- Parameters:
emailUid
- 邮件配置UID
-
restartEmailSync
重启邮件同步任务- Parameters:
emailEntity
- 邮件配置实体
-
syncEmailsForAccount
同步指定邮件账户的邮件- Parameters:
emailEntity
- 邮件配置实体
-
syncImapEmails
同步IMAP邮件 -
syncPop3Emails
同步POP3邮件 -
syncExchangeEmails
同步Exchange邮件 -
processIncomingMessage
处理收到的邮件消息 -
extractMessageId
提取邮件的 Message-ID -
generateMessageId
生成邮件ID(当邮件没有 Message-ID 时) -
extractAttachments
提取附件信息 -
getMessageSize
获取邮件大小 -
convertToZonedDateTime
将 Date 转换为 ZonedDateTime -
verifyEmailConfiguration
验证邮件配置 -
verifyImapConfiguration
验证IMAP配置 -
verifyPop3Configuration
验证POP3配置 -
verifyExchangeConfiguration
验证Exchange配置 -
updateLastSyncTime
更新最后同步时间 -
updateConnectionStatus
private void updateConnectionStatus(EmailEntity emailEntity, EmailConnectionStatusEnum status, String errorMessage) 更新连接状态 -
getActiveSyncTasksCount
public int getActiveSyncTasksCount()获取当前运行的同步任务数量 -
isSyncRunning
检查指定邮件配置是否正在同步 -
stopAllSyncTasks
public void stopAllSyncTasks()停止所有同步任务 -
shutdown
public void shutdown()关闭服务 -
startBatchSyncTasks
批量启动邮件同步任务- Parameters:
emailEntities
- 邮件配置实体列表
-
triggerManualSync
手动触发单次邮件同步- Parameters:
emailUid
- 邮件配置UID- Returns:
- 同步结果
-
testEmailConnection
测试邮件配置连接- Parameters:
emailUid
- 邮件配置UID- Returns:
- 连接测试结果
-
getSyncStatus
获取同步任务状态信息- Parameters:
emailUid
- 邮件配置UID- Returns:
- 状态信息
-
getSyncOverview
获取所有同步任务的概览状态- Returns:
- 概览状态
-
syncEmailsForAccountByUid
通过UID同步指定邮件账户的邮件(从数据库获取最新数据)- Parameters:
emailUid
- 邮件配置UID
-