Package com.bytedesk.core.email
Class EmailSyncService
java.lang.Object
com.bytedesk.core.email.EmailSyncService
邮件同步服务
负责管理和监控邮件账户的收发邮件
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final EmailMessageRestServiceprivate final EmailRepositoryprivate final EmailRestServiceprivate final ScheduledExecutorServiceprivate final Map<String,ScheduledFuture<?>> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate ZonedDateTimeconvertToZonedDateTime(Date date) 将 Date 转换为 ZonedDateTimeprivate StringextractAttachments(jakarta.mail.Message message) 提取附件信息private StringextractMessageId(jakarta.mail.Message message) 提取邮件的 Message-IDprivate StringgenerateMessageId(jakarta.mail.Message message) 生成邮件ID(当邮件没有 Message-ID 时)int获取当前运行的同步任务数量private LonggetMessageSize(jakarta.mail.Message message) 获取邮件大小获取所有同步任务的概览状态getSyncStatus(String emailUid) 获取同步任务状态信息booleanisSyncRunning(String emailUid) 检查指定邮件配置是否正在同步private voidprocessIncomingMessage(jakarta.mail.Message message, EmailEntity emailEntity) 处理收到的邮件消息voidrestartEmailSync(EmailEntity emailEntity) 重启邮件同步任务voidshutdown()关闭服务voidstartBatchSyncTasks(List<EmailEntity> emailEntities) 批量启动邮件同步任务voidstartEmailSync(EmailEntity emailEntity) 启动邮件同步任务void停止所有同步任务voidstopEmailSync(String emailUid) 停止邮件同步任务private voidsyncEmailsForAccount(EmailEntity emailEntity) 同步指定邮件账户的邮件private voidsyncEmailsForAccountByUid(String emailUid) 通过UID同步指定邮件账户的邮件(从数据库获取最新数据)private voidsyncExchangeEmails(EmailEntity emailEntity) 同步Exchange邮件private voidsyncImapEmails(EmailEntity emailEntity) 同步IMAP邮件private voidsyncPop3Emails(EmailEntity emailEntity) 同步POP3邮件booleantestEmailConnection(String emailUid) 测试邮件配置连接booleantriggerManualSync(String emailUid) 手动触发单次邮件同步private voidupdateConnectionStatus(EmailEntity emailEntity, EmailConnectionStatusEnum status, String errorMessage) 更新连接状态private voidupdateLastSyncTime(EmailEntity emailEntity) 更新最后同步时间private booleanverifyEmailConfiguration(EmailEntity emailEntity) 验证邮件配置private booleanverifyExchangeConfiguration(EmailEntity emailEntity) 验证Exchange配置private booleanverifyImapConfiguration(EmailEntity emailEntity) 验证IMAP配置private booleanverifyPop3Configuration(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
-