电线mlos-内部自动(INTERNAL AUTH SECRET)进入部署 [skip ci]
EmailService的"内部AuthFilter"卫士/api/email/templates/ send +/ seed-org on 上 存档副本. 内部的.auth.secret,这是未设置的(未关闭503). 共享现有的 生产价值(mlos-Internal-Auth),所以SecurityService的...
当成员没有邮箱时返回422个(不是500个)
listFolders 和其他读取的结束点将非法状态排除 MailContext.to 当一个成员没有IMAP 证书时的Mail证书() 提供, 控制器的包 变成500。 添加 邮箱不配置例外(一个能力不支持例外子类, 因此它通过现有的重排路径)被映射到422 MILBOXNOT CONFIGURED ——镜像VoIP...
不要保存交易 NoReply 发送到 Sent 文件夹
NoReply 是一个只发送地址, 没有邮箱, 但每个交易 发送仍在尝试的 IMAP 附加到它的 Sent 文件夹中, 产生噪音 每次发送都发出警告 添加保存的toSent 旗 电子邮件SmtpService.send( 真实的邮箱/ 用户发送的默认为真实)并传递 错误来自 NoReply 交易路径.
应用程序 DB 的自愈邮箱账户( 驱动回收)
应用程序 DB 是应该存在信箱的真实来源; KamoMail 账户在邮件服务器的虚拟 用户中进行直播。 如果邮件 DB 丢失数据, 邮箱在提供商丢失时 应用记录还在 - 邮箱自助服务:启动时+每日,重新提供任何KAMO MIL应用程序 缺少虚拟用户的邮箱( 新鲜的随机应用程序管理密码) 。 - 同步Mailboxes...
邮箱列表 API 返回 UI 形状的 QQ
Get / api/ 电子邮件/ mailboxs 返回原始实体( 提供方状态, 最后同步At, 不计成员数). 设置 UI 读取 QQ 如此 状态总是未定义,每个邮箱都是"待决"。 地图 字段.
授权基于特权的邮箱访问读取 + send-as
resolutionForMailbox只允许通过直接的会员Mailbox任务访问, 所以邮箱浮出水面 权利扔出 NoSuchElementException - > “未装入信件”。 - **************** 右侧访问检查 镜像切换器计数; 解析ForMailbox 现在使用它 。 - Accessab...
为 kamo- shared- library 更新而重建( 签名签名电子邮件模板)
拾取新的 Cononic 模板 e sign. signer veviation + isign.signer invite 所以种子ForOrg可以先发后播种.
所有云端提供者的有线域名管理器和邮箱预览器
将每个云提供方的不支持操作排除根替换为 真实的 HTTP 调用每个后端的管理员 API : - Microsoft 365 — 微软图(/用户,/域,/核实,.) pro-org OAuth 访问符. - Google工作空间 – 管理 SDK目录 + 使用每个用户的站点验证 OAuth 访问符 。 - Zoho邮件...
IMAP/ SMTP 支持的发送、文件夹和云根搜索
将 IMAP/ SMTP 代表团模式摘录为 CratusImapBackedCloud Provider 还有Zoho, IceWarp, Exchange, Google 工作空间, 和Microsoft 365 扩展 这个 基础类执行 MailSender、MailReader、文件夹管理器和 在电子邮件Imap ...
IMAP 支持的提供云源根的邮件阅读器
Zoho, IceWarp, Exchange, Google 工作空间, 和Microsoft 365 都暴露了IMAP, 通过电子邮件ImapService 连接每个云端提供者的邮件读取器 而不是丢弃未支持的操作例外 。 这个: - 当只有IMAP的证书时,解除对这些提供者的读取信件的屏蔽 配置( 今天最常见的部...
服务内置图像 MIME 部件和表面内容ID元数据
在信件 UI 中通过曝光内含部分来渲染<img src='cid:...> HTML正文参考。 - 附件Info 增益内容Id(无角括号)和内置旗帜。 - 解析多相并获得相接共享 单相接部分上游 以及一个递归行走器, 所以内接部分 嵌入多部分/相关 采用两种方法(其指数保持不变)。 之前的重现过度重写了父附件列表,该...
在附件下载时保留原始文件名和内容类型
终点(均为个人) 和共享邮箱控制器) 没有文件名参数和内容类型:应用程序/octet-stream, 强制浏览器返回到 URL 的后端索引段 保存文件名 – 文件保存为"0","1"等,没有扩展名. 通过 getMessage () 查找匹配的附件信息并构建一个合适的 内容Disposition with UTF-8...
创造就业的货币范围,而不是部署Kubernetes
工作流量一级连通整条管道(包括克贝克特尔) (推出)。 将组移动到构建任务中, 只需从不同位置部署任务 运行可以重叠。 Kluster Services 工作流程下调工作流程货币 并行推动不排队于只部署的任务.
指定、更改或删除主邮箱时同步成员. email
当一个邮箱在 KAMO Mail org 中被指派给一个成员时, 成员. email 从未更新, 导致 EmailCreditience Service 无法解决 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...
处理 IMAP 输入到磁盘中以防止 ClassCast 例外
JavaMail 可以返回一个 IMAPInputStream 而不是从解码字符串 part.getContent () 当信件内容没有被预选时 。 这个 直接( String) 投放在 parse Multipart () 中 受影响的信件, 在读取标记前导致获取 FullMessage 失败 被调用,所以电子邮件从...
使用 etHasAttachments () 来匹配布尔包件类型
{\fn华文楷体\fs16\1cHE0E0E0}所以伦博克 生成获得 Hasattachments () 不是 Hasattachments () 。 仅限后者 存在于原始布尔。 使用 Boolean.TRUE.equals () 安全处理 无效的案例.
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...
发送时来自 Address 的支援
从地址请求添加到电子邮件发送请求, 这样前端可以指定 用于发送的别名/共享/邮件箱地址。 现在只提供 返回到 未设置时提供配置邮件 .
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...
当没有设置电子邮件 提供者 域名默认设置时, 返回到 org domains
KamoMailDoalidator对403只具有 org 域中的 DNS- 验证域, 但从未添加到电子邮件中 提供者域名登记。 添加一个使用第一个活动的后退, DNS- 已验证, 顶级的 org domain 这样, 类人可以创建信箱, 而无需 一个单独的域注册步骤.
连接状态过滤器和列表中所需的自动种子模板
- 电子邮件Template Control.list() 现在接受? status=param和过滤器 使用现有的 findByOrgIdAnd status 查询 - 需要为错过初始播种的兽人提供自动种子模板 (种子 ForOrg 如果错过检查 REQUIRED 计数,只有种子如果零) - 修补种子前创建鼠标时显示...
Add KamoMail domain validator to block cross-tenant email addresses
Introduces KamoMailDomainValidator component that checks, at service layer, whether the submitted email domain matches the org's verified default domain when Ka...
Rebuild for kamo-shared-library update (CREATE_CHILD_ORG right + apply-to flags)
Pulls the new RoleRightType.CREATE_CHILD_ORG (id 131), the three apply-to flags on ChildOrgSecurityModel, the two 13-arg service overloads, and the AppliedModel...
Rebuild for kamo-shared-library update (appConfig upsert-only fix)
Pulls the hardened **************** that no longer deletes appConfig rows whose service types are absent from the caller's payload — prevents silent data loss w...
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...
Add resetCode to password reset email, add emailVerifyByCode endpoint, send WELCOME_MEMBER after email verification
Update EMAIL_VERIFICATION sample vars to match current template
Use expiryText instead of expiryMinutes (renamed variable), and update verifyLink to point to the register subdomain (correct send path).
Preserve DB domain case in NoReply from address
Removed toLowerCase() — the domain already comes from resolvePrimaryDomain which reads org_domains from the database, so case is canonical from DB.
Resolve root domain for NoReply from-address instead of bare subdomain
resolvePrimaryDomain() was returning the first domain entry (e.g. "www") which produced NoReply@www. Now prefers root domains (parent == null) so transactional ...
Add internal.auth.secret to EmailService configmap
InternalAuthFilter was rejecting all service-to-service calls (send, seed-org) with 503 because internal.auth.secret was unconfigured. Matches the same INTERNAL...
