停止Hibernate 在本地 SQL 所投的 "::"
Hibernate的自来水解析器将":"作为逃脱的结肠来对待并转发 a 单":". 已接收 CockroachDB * ARRAY [:文本[]], ' ) 并用: 在或接近":":语法错误. 该语句是有效的 SQL -- 它手动准备和执行精良 - 这就是它是什么样子的 缺少数据库函数而不是客户端重写。 更新Se...
部署后继续重试索引器的耐用NATS消费者
滚动的部署重叠了舱位 离开的舱位仍然保留耐用 消费者,所以进入的舱 绑定"电子邮件-元数据-索引器"失败了 [SUB-90012]消费者已经订户. start () 运行一次 @PostConstruct, 登录错误并放弃, 每一个部署都默默地停止索引新邮件 直到有人手动重启, 并且没有露出它发生过。 在守护进程排程...
使元数据索引器适应数组类型列
遵循 kamo- share- library 更改, 以映射对话/ search index 数组列作为字符串[]/UUID[] 而不是列表<T>,这就是所停止的 每条索引信息都来自被写入 读取一个可能无效的列现在已明确 : toSet/ toArray 返回空 收藏而非让 Arrays.asList( null...
锁定块文件夹索引, 并停止结构故障
一次并行会议的未承诺工作, 被扫入,树是干净的。 批量索引行走页面,将全部Pages设置到Integer. MAQVALUE和没有 天花板,所以一个文件夹 谁的呼喊不当会走永远。 现在停了 在固定的页数后, 盖上页码, 并终止一次 连续失败但没有成功 显示索引是结构上的 而不是偶尔听到坏消息.
永远不要与公司自己的地址相匹配
一个被设定为 noreply@kamocrm.com 的线索 符合每个消息 地址曾经发送过 - 一个铅唱片 浮出公司的整个出行 邮件流(共有126个协会,共6个牵头生产)。 两个错误,都在这里关闭。 解决者决定"这是公司吗?" 从电子邮件 professor domains, 邮箱,别名和成员地址. 那张桌子只供人...
在窗口覆盖之前将线索扫描页
当邮箱收走的邮件超过 页面 将消息大小于勾选符之间——通讯中断、忙于共享的收件箱,或 只是对一个活跃的邮箱进行第一次扫荡——并永久丢失,因为 最大页,所以一个巨大的邮箱 不能独占一滴。 击中束缚 但它不能丢掉一个消息.
在回复-To中地址回复,并停止向UI泄露 SMTP 例外
对一个 KamoCRM 通知的快速回复失败了 : “ 无效地址 ” 。 在答复框中逐字播放。 这个字符串是雅加达邮报自己写的 SMTP 运输.rcpt 到; 显示它隐藏了什么: 550 5.1.1 < Noply@KamoCRM.com>:收件人地址被拒绝: 虚拟信箱表中用户未知 背后有两个缺陷 答复是无条件的,...
停止将多部分/ 相关的 HTML 根归类为附件
我们发送的每封交易邮件 都有内嵌的Org标志到达我们自己 / 信息取景器带有正确的主题和完全空出的身体. isAttachmentPart () 将带有内容ID的任何部分视为附件。 这个 多部分/相关内容的文本/html ROOT 设计有其一——适用 内容 设定它,使 RFC 2387 start=参数可以指向身体,...
扫描共享的外交部储存库
Mfa Enrollment Service 是 @ Service in kamo- share- library, 所以通配符 @ ConcomonentScan ("com.kamo") 在此应用程序中构建它, 无论是否此 服务与外交部及其建筑师的需要有关 用户Mfa 导入存储器 。 该软件包不在 @ Enabl...
合并崩溃的 Email Service 重复的 kamo 密钥
新的EmailService舱从16e8a05开始在CrashLoopBackOff——22次重启, 从来没有一次开始。 Seadyaml 在重复的顶层提高重复键排除 键,我增加了第二个“ kamo:” 块,用于发送者- avatar 击杀开关 。 已存在于已包装应用程序的顶端. yml 和 k8s 配置图. 在任何豆...
Harden Kubctl的下载 以对抗被片状攻击 [skip ci]
dl.k8s.io 在跑道上断断续续地下降 中转: 卷曲:(56) OpenSSL SSL read:解密失败或记录错误 mac 无法在绿地上部署 多次观察 卡莫-签名-莫诺雷波和卡莫-翻译-词典. 添加 -- retry/-retry-all-errors: plain --retry 不涵盖该类 中转失败。 同时...
添加缺少的 Campaign 控制器 REST 端点
批量电子邮件工作空间/编辑呼叫GET/POST/api/电子邮件/营地等,但仅限 运动服务(@Service)曾经被创建——没有@Rest Captain将其曝光, 所以每个电话404d 和/市场营销/电子邮件页面 做了"找不到"的内线。 添加 Campaign 绘图 使用 BulkProvider Captain ...
删除崩溃启动的模糊未订阅请求Matcher
电子邮件服务挂载两个服务器( MVC 调度服务器 + Spring-WS) 信件发送/ services/ * ),所以一个赤字符串请求Matchers( "/api/email/unsits/**")是一个模棱两可的Mvc-requestMattcher并被扔了出去. 上下文 。 端点已经通过 任何请求 (. per...
停止序列化计算损坏 MailCreditis Redis 缓存的 xoaut2 获取器
MailCreditis被缓存于Redis (Generic Jackson2Json). 添加的`isXoauth2()' bullean getter被序列化为"xoaut2"属性,但没有字段可读 回到,所以每一个缓存的证书读取 未识别的特性例外 - > 序列化例外, 500 个列表 所有供应商(KamoMail ...
覆盖 KamoMail 邮箱/域名列表到 Org 自己的域名( 跨租户泄漏)
安全: QQ 运行虚拟用户的“ SELECT 电子邮件 ” (和 QQ) 'SELECT name from virtual domains'"),没有ORg范围,所以邮箱/域同步导入EveryY Org的KamoMail邮箱入到呼叫者的Org——一个Org可以看到另一个Og的私人邮箱(可选的一号已全部导入了Kamoc...
坚持在回调时选择 OAuth 提供商, 因此它不再返回到 KamoMail Name
切换到Microsoft 365(或Google Workspace / Zoho)时从未卡住: OAuth召回存储了令牌并只在原有的提供方行上翻转状态,在提供方无行时从未完全写入提供方 类型和不开放. 读取的路径随后倒回了硬码的KAMO MIL默认,因此设置页面恢复了. 在 OAuth 状态中将 org email...
解析 Org 主题主机而不是顶端的欢迎电子邮件标识
系统电子邮件(欢迎/核查)中的页眉/页脚标识是 QQ- 仅存在于卡莫上的最高路径 市场营销网站,因此对于顾客Ogs(例如optionone.com)来说,既包括图像404,也包括图像404和图片A. 电子邮件使得没有标志。 添加解析度LogoUrls( 被发送和预览使用) 路径,所以它们不能漂移),指向真实的每组主题位...
经常时间内部- 自动秘密比较( 计算预告)
将 String. equases 替换为 MessageDigest.isEqual , 响应暂时性不能 泄露X-Internal-Auth共享的秘密字节. 全舰搜索 复制后内部AuthFilter( eClose 和 承销服务).
当成员没有邮箱时返回422个(不是500个)
listFolders 和其他读取的结束点将非法状态排除 MailContext.to 当一个成员没有IMAP 证书时的Mail证书() 提供, 控制器的包 变成500。 添加 邮箱不配置例外(一个能力不支持例外子类, 因此它通过现有的重排路径)被映射到422 MILBOXNOT CONFIGURED ——镜像VoIP...
不要保存交易 NoReply 发送到 Sent 文件夹
NoReply 是一个只发送地址, 没有邮箱, 但每个交易 发送仍在尝试的 IMAP 附加到它的 Sent 文件夹中, 产生噪音 每次发送都发出警告 添加保存的toSent 旗 电子邮件SmtpService.send( 真实的邮箱/ 用户发送的默认为真实)并传递 错误来自 NoReply 交易路径.
邮箱列表 API 返回 UI 形状的 QQ
Get / api/ 电子邮件/ mailboxs 返回原始实体( 提供方状态, 最后同步At, 不计成员数). 设置 UI 读取 QQ 如此 状态总是未定义,每个邮箱都是"待决"。 地图 字段.
授权基于特权的邮箱访问读取 + send-as
resolutionForMailbox只允许通过直接的会员Mailbox任务访问, 所以邮箱浮出水面 权利扔出 NoSuchElementException - > “未装入信件”。 - **************** 右侧访问检查 镜像切换器计数; 解析ForMailbox 现在使用它 。 - Accessab...
在附件下载时保留原始文件名和内容类型
终点(均为个人) 和共享邮箱控制器) 没有文件名参数和内容类型:应用程序/octet-stream, 强制浏览器返回到 URL 的后端索引段 保存文件名 – 文件保存为"0","1"等,没有扩展名. 通过 getMessage () 查找匹配的附件信息并构建一个合适的 内容Disposition with UTF-8...
指定、更改或删除主邮箱时同步成员. 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 计数,只有种子如果零) - 修补种子前创建鼠标时显示...
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...
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...
Allow transactional send on port-25 relay and auto-seed missing templates
Port-25 SMTP (postfix) requires no auth — transactionalCredentials() was throwing ProviderUnavailableException when user/pass were unconfigured, blocking all ve...
Add dao.repositories to JPA scan so EmailTemplateRepository is found
Same pattern as KamoInitializerService — explicit basePackages overrides default scanning and must include every package that has repositories.
Support mailbox switching by resolving IMAP credentials per mailboxId
Added getMailCredentialsByEmail to look up virtual_users by email directly, resolveForMailbox to MailProviderResolver with access verification, and optional mai...
Rename DomainService to EmailDomainService to resolve bean name conflict
The shared library's DomainService and EmailService's local DomainService both registered as 'domainService' bean, causing CrashLoopBackOff on deploy.
Correct method signatures in DomainController and MailboxController
- Fix getMemberMailboxes -> getMailboxesForMember in MailboxController - Add missing memberId parameter to getVerificationRecords and verifyDomain in DomainCont...
Extract BCC recipients from IMAP messages
BCC header is retained on sent folder copies. Now extracted alongside To and CC so the frontend can display it in sent item previews.
Provider GET returns both type and providerType, PUT accepts both
GET /api/email/provider now includes both 'type' and 'providerType' fields in the response for frontend compatibility. PUT now accepts 'type' as a fallback when...
