Google/Microsoft/Zoho OAuth 클라이언트는 플랫폼 OAuth 레지스트리 (+ env에서 시동); @Value 클라이언트 ID/secret + 플랫폼 enc-key env를 제거
와이어 mlos-internal-auth (INTERNAL AUTH SECRET) 배포 [skip ci]
이메일서비스의 InternalAuthFilter 가드 /api/email/templates/send + /seed-org 에 내부.auth.secret, 이는 설정되지 않은 (503). 자주 묻는 질문 생산 값 (mlos-internal-auth) 그래서 SecurityService의 ...
반환 422 (500) 회원이 사서함이없는 경우
listFolders 및 기타 읽기 엔드 포인트 threw IllegalStateException from MailContext.toMailCredentials() 회원이 IMAP 자격 증명이 없을 때 컨트롤러의 catch-all이 500으로 바뀌는 것을 규정했습니다. 기타 제품 Mai...
거래 NoReply를 저장하지 마십시오
NoReply는 mailbox가없는 send-only 주소이지만, 모든 거래 여전히 IMAP append를 Sent 폴더에 보내면 noisy를 생성 각 전송에 AUTHENTICATIONFAILED 경고. saveToSent 플래그 추가 EmailSmtpService.send (실제 ma...
앱 DB (drift recovery)의 셀프 치유 사서함 계정
앱 DB는 사서함이 존재하는 진실의 근원입니다; KamoMail 메일 서버의 virtual users에서 라이브 계정. 메일 DB가 데이터를 잃는 경우, mailboxes는 app 기록이 남아있는 동안 공급자에 누락됩니다. - MailboxSelfHealService : 시작 + 매일...
Mailbox 목록 API 반환 UI 모양 ****************
GET /api/email/mailboxes는 raw entity (providerStatus, lastSyncedAt를 반환합니다. 회원 수 없음. 설정 UI는 ***********를 읽습니다. 상태는 항상 정의되지 않았고 모든 mailbox는 "pending"으로 렌더링되었습니다. ...
Read + send-as에 대한 권한 기반 mailbox 액세스 권한을 부여
resolveForMailbox는 직접 MemberMailbox 할당을 통해만 액세스 권한을 부여합니다. 이렇게 mailboxes는 ***********를 통해서 지상에 놓았습니다 권리 threw NoSuchElementException -> "메시지로드" -********** 자주하...
K1m1 (clone+registry+kubeconfig from k1m1, 드롭 k2m1, 간단한 kubectl install)에 마이그레이션
Kamo-shared-library 업데이트에 대한 재건 (esign signer 이메일 템플릿)
새로운 canonical 템플릿 esign.signer verification +를 선택합니다. esign.signer invite 그래서 SeedForOrg는 첫 번째 전송에 씨앗을 수 있습니다.
모든 클라우드 공급자를위한 Wire DomainManager 및 MailboxProvisioner
UnsupportedOperationException stubs를 모든 클라우드 공급자와 교체하십시오. 각 백엔드의 관리자 API에 대한 실제 HTTP 호출: - Microsoft 365 → Microsoft Graph (/users, /domains, /verify, ...) 사용 ...
IMAP/SMTP 백업, 폴더 및 클라우드 스텁에 대한 검색
AbstractImapBackedCloudProvider로 IMAP/SMTP 위임 패턴을 추출 Zoho, IceWarp, Exchange, Google Workspace 및 Microsoft 365 확장 그것은. 기본 클래스는 MailSender, MailReader, FolderMan...
IMAP-backed MailReader 클라우드 프로바이더 스텁
Zoho, IceWarp, Exchange, Google Workspace 및 Microsoft 365 모든 노출 IMAP, 그래서 각 클라우드 프로바이더 스텁의 MailReader 메소드를 통해 EmailImapService UnsupportedOperationException을 던지...
Serve 인라인 이미지 MIME 부품 및 표면 내용 ID 메타데이터
렌더링 <img src="cid:..."> inline 부품의 폭발로 메시지 UI에서 HTML 몸 참조. - AttachmentInfo는 contentId (각 부류 없이)와 인라인 깃발을 얻습니다. - parseMultipart 및 getAttachment 공유 단일 isAttach...
첨부 파일 다운로드에 원본 파일명 및 내용 유형 보존
*********** endpoints (개인의 것 and shared-mailbox controllers)는 Content-Disposition를 방출하고 있었습니다: 부착 filename 매개 변수와 Content-Type: application/octet-stream, 브라우저가 ...
작업, 쿠버네티스 배치를 구축하기 위한 범위
Workflow-level concurrency serialized 전체 파이프라인 (포함 kubectl 롤아웃). 그룹을 빌드 작업으로 이동하여 다른 작업을 배치하십시오. 실행은 오버랩 할 수 있습니다. KlusterServices infra 워크플로우는 작업 흐름을 떨어뜨립니다. 평...
Sync member.email when primary mailbox는 할당, 변경, 또는 제거
Mailbox가 KAMO MAIL org의 회원으로 할당되었을 때, member.email 이메일CredentialService가 IMAP을 해결하지 못하는 경우 결코 업데이트되지 않았습니다. 그 회원의 자격.
Mark-as-read for shared and member mailboxes
EmailController.setFlags now accepts an optional mailboxId query param and routes through resolveProviderWithMailbox so member-mailbox flags are set against the...
ClassCastException을 방지하기 위해 getMessage에서 IMAPInputStream 처리
JavaMail 대신 IMAPInputStream을 반환할 수 있습니다. part.getContent() 메시지 내용이 예쁘지 않은 경우. 더 보기 직접 (String)는 parseMultipart () threw ClassCastException에 캐스팅 영향을받는 메시지, fetch...
사용 getHasAttachments() Boolean 래퍼 유형 일치
***********는 Boolean (wrapper), 그래서 Lombok입니다 getHasAttachments()를 생성합니다. 후자의 만 primitive boolean에 대한 존재. 안전하게 취급하기 위하여 Boolean.TRUE.equals ()를 사용하십시오 null의 경우.
Reset stale hasAttachments on sync and accumulate correctly
- Reset has_attachments=false at start of bulk sync so stale true values from old false-positive MIME detection are cleared before re-indexing - Accumulate ha...
Send에 지원 fromAddress override
Adds FromAddressRequest to EmailSendRequest 그래서 프론트엔드를 지정할 수 있습니다. alias/shared/mailbox 주소로 전송합니다. SmtpOnlyProvider 지금 헤더의 주소는 현재가 떨어지면 공급자 설정하지 않을 때 이메일.
Fix attachment parsing and hasAttachment false positives
Three fixes to EmailImapService: 1. toEnvelope: narrow multipart check to multipart/mixed only — plain HTML+text emails (multipart/alternative) no longer sh...
Add com.kamo.z.shared.commerce to EnableJpaRepositories scan
**************** (required by **************** in the shared library) lives under com.kamo.z.shared.commerce but was not included in the JPA repository scan, ca...
Correct field name and type in getFromAddresses response
Backend was sending 'email' key but frontend expected 'address', and sent type 'shared_mailbox' when frontend expected 'shared'. Also fixes hasMailboxes flag wh...
이메일 provider domains 기본 설정이 없는 경우 org domains로 돌아가기
KamoMailDomainValidator는 403 의 orgs에 대 한 어려운 실패 org domains의 DNS 인증 도메인은 아니지만 이메일에 추가하지 않습니다. 공급자 도메인 등록. 첫 번째 활성을 사용하는 fallback을 추가하십시오. DNS 인증, 최고 수준의 org dom...
Kamo-shared-library 업데이트에 대한 재건 (remove OrganizationType, add isTopLevel)
상태 필터 및 목록에 자동 입력된 필수 템플릿
- EmailTemplateController.list()는 이제 ?status= param 및 필터를 허용합니다. 기존 findByOrgIdAndStatus 저장소 쿼리 사용 - 초기 묘목을 놓은 orgs에 대한 Auto-seeds 필수 템플릿 (seedForOrgIfMisssing ...
Cross-tenant 이메일 주소를 차단하는 KamoMail 도메인 validator 추가
서비스 레이어에서 확인하는 KamoMailDomainValidator 구성품을 소개합니다. 제출 된 이메일 도메인이 org의 검증 된 기본 도메인과 일치 여부 KamoMail이 활성 공급자입니다. MailboxProvisioningService에 주사, AliasService 및 Sha...
Kamo-shared-library 업데이트에 대한 재건 (CREATE CHILD ORG 오른쪽 + 적용 플래그)
새로운 RoleRightType.CREATE CHILD ORG (id 131)을 잡아, ChildOrgSecurityModel의 3개의 적용 대상 플래그, 2개의 13-arg 서비스 하중 및 AppliedModelEnforcementService Creator-type 헬퍼.
Kamo-shared-library 업데이트에 대한 재건 (appConfig upsert-only fix)
더 이상 AppConfig 행을 삭제하지 않은 ****************는 콜러의 페이로드에서 서비스 유형이 absent 인 appConfig 행을 삭제합니다. 부분 페이로드가 수신되면 침묵 데이터 손실을 방지합니다.
Rebuild for kamo-shared-library update (effective-feature resolver)
Picks up the new AppliedModelEnforcementService methods (computeAvailabilitiesMap, isAppEffectivelyEnabled, getEffectivelyEnabledAppTypes, computeEffectiveFeatu...
Rebuild for kamo-shared-library update (applied-model enforcement + appConfigs + isPrivate)
Triggers a rebuild so this service pulls the updated kamo-shared-library containing AppliedModelEnforcementService, ChildOrgSecurityModelAppConfig entity, Servi...
Rebuild for kamo-shared-library update (runtime force rules + DEFAULT fallback in MemberRightsAppliedService)
Triggers a rebuild so this service picks up the updated **************** that applies template force rules and DEFAULT-template fallbacks on top of the existing...
Rebuild for kamo-shared-library update (master model, default role templates, force-rule resolver)
Triggers a rebuild so this service pulls the new kamo-shared-library revision containing Organization.branchTypeID, Organization.masterModelID, ****************...
Preview uses same auto-vars as sendToUser (org logo + name)
The preview endpoint now injects logoUrl, logoSimpleUrl, and orgName from the org's domain before applying sample content variables, matching the exact variable...
Auto-inject logoUrl, logoSimpleUrl, and orgName variables at send time
EmailTemplateService now merges base variables (logoUrl, logoSimpleUrl, orgName) derived from the org's primary domain before rendering, so all transactional te...
