Publish row ids as strings - yeni bir kitap 404'd the moment you selected it
CockroachDB eşsiz rowid() 64-bit ids üretir. İletişim kitaplardan gerçek bir tanesi 1200081912680906758; JavaScript'in JSON.parse turu geçmiş bir şey geçmiş Say...
Sıfır yazma yerine kayıt mesajı boyutları
SearchIndexService, indekslenen her mesaj için boyutBytes = 0 yazdı, Yorum altında " zarftan mevcut değil". Bu mevcuttu - getiriyor Profil sadece bunu asla sorm...
Dosyaları 2b23346 geri yükleyin ve 413 ile uzun bir gönderiye cevap verin
2b23346, HEAD'dan asla tohumlanmamış özel bir indeksle işlendi. Bu yüzden ağacı sadece üç dosyayı içine koydu ve iş silindi Diğer 231. İşçi ağacı asla dokunmadı...
Her göndermeyi 1MB'de bırakın, bu yüzden geçmiş bir görüntü aslında dışarı çıkabiliyor
Geçmişten gelen bir görüntü ile birlikte, çıplak bir "posta göndermek için özür diledi". The The The The The The The The besteci, yapıştırmayı vücut HTML'ye bir...
Hibernate mangling the ":" castings in the native SQL
Hibernate'un yerli-kırıklığı “:” kaçan bir koloni olarak davranır ve ileriye doğru ilerler Tek ":" CockroachDB aldı ************ ARRAY[]: Metin[], ') Ve bunu ...
Bir dağıtmadan sonra indeksleyicinin dayanıklı NATS tüketicisini yeniden denemeye devam edin
Bir yuvarlanma dağınıkları pods ve giden kişi hala dayanıklı tutar tüketici, bu yüzden gelen pod'un "email-metadata-indexer" ile bağlantısı başarısız oldu [SUB-...
Metadata indeksleyicilerini dizi tip sütunlara uyarlayın
Kamo-shared-library haritaların konuşmaları/search index'in değiştiğini takip edin Dizi sütunları String[]/UUUUID[] Listeden ziyade <T>, hangi durdu? Her indeks...
Büyük klasör indeksini açın ve yapısal başarısızlık üzerinde dur
Eş zamanlı bir seanstan işe yaramaz, o yüzden ağaç temiz. Büyük indeks, Integer'e ayarlanmış toplamPages ile sayfaları yürüdü. MAX VALUE ve hayır tavan, böylec...
Hiçbir zaman şirketin kendi adreslerine karşı bir liderlik asla
E-postanın hiçbirreply@kamocrm.com'a ayarlandığı bir lider, her mesajı bu şekilde eşleştirdi adresi hiç göndermemişti – bir lider rekor, şirketin tüm çıkışına u...
Sayfa pencere kaplı olana kadar süpürücü süpürüyor
Bir posta kutusu ne zaman bir posta kutusu daha fazla aldığında tek sabit bir sayfa sessizce kayboldu SayfaGruplar arasındaki mesajlar - bir bülten patlama, yoğ...
Cevaplar Yanıt-To, ve SMTP istisnalarını UIP'ye bırakma
KamoCRM bildirimine hızlı bir cevap, “{"error" ile başarısız oldu: "Invalid Addresses" Cevap kutusunda fiilatim verdi. Bu dize Jakarta Mail'nin kendi kelime çev...
Bir multipart / ilgili HTML kökünü bir ek olarak sınıflandırmayı bırakın
Inlined veyag logo ile gönderdiğimiz her işlemsel e-posta kendi başına geldi /mesajlar doğru bir konu ve tamamen boş bir vücut ile görünür. AttachmentPart(), b...
Paylaşılan MFA repositories
MfaEnrollmentService, kamo-shared-library'de @Hizmettir, bu yüzden vahşi kartpostal @ComponentScan("com.kamo) Bu uygulamada bunu bu ya da bu değil mi inşa ediyo...
Merge, kazara e-posta hizmetinin anahtarını tekrarladı
Yeni E-posta servisi pod, 16e8a05'ten bu yana CrashLoopBack'ta olmuştur - 22 yeniden başlar, Asla bir kez başlamadı. yılanya ml, tekrarlanan üst düzey bir üst d...
Harden the kubectl download against flaky egress [skip ci]
dl.k8s.io, koşucunun egress intermittly damla orta devre dışı bırakıyor: curl: (56) OpenSSL SSL read: decryption başarısız ya da kötü kayıt mac Bu, aksi takdird...
Kayıp Kampanya Kontrolüler REST uç noktaları /api / e-posta /campaigns
Toplu e-posta çalışma alanı/editor GET/POST /api/email/campaigns vs., ancak sadece sadece sadece sadece sadece Kampanya hizmetleri ( @Service) hiç yaratıldı - @...
Kaldır ambiguous unsubscribe requestMatcher that crashed startup
E-posta servisi iki koruyucu (MVC DispatcherServlet + Bahar-WS MesajDispatcherServlet in /services/*), bu yüzden boş bir dize istekMatchers((() "/api/email/unsu...
MailCredentials Redis önbelli kırdı xoauth2 hesaplamayı durdurun
MailCredentials Redis (GenericJackson2Json). Ayrıca "isXoauth2()" boolean getter bir "xoauth2" mülk olarak serileştirildi, ancak okumak için bir alana sahip değ...
Kapsam KamoMail posta kutusu / alan listesi org'in kendi domainlerine (çoğunlukla sızdırılan sızıntı)
SECURITY: **************** run 'SELECT email from virtual users' (and **************************** “Asıl domains’in scopingi ile SELECT adı, bu yüzden posta kut...
Persist, OAuth sağlayıcıyı geri çağırmak için seçti, böylece KamoMail'e geri çekilmeyi durduruyor
Microsoft 365'e bir veyag geçmek (veya Google Workspace / Zoho) asla sıkışıp kalmamıştır: OAuth callback depolanmış jetonlar ve sadece önceden mevcut bir sağlay...
Resolve org tema host'dan gelen e-posta logosunu hoş karşılar, apex değil
Sistem e-postalarında Header/footer logolar (welcome/verification) olarak inşa edildi **************** - sadece Kamo'da var olan bir apex yolu pazarlama sitesi,...
Constant-time internal-auth secret karşılaştırma (timing oracle)
String.equals'ı MesajDigest.isEqual ile değiştirin, bu yüzden geçkisi geçemez X-Internal-Auth tarafından paylaşılan sırı -by-bay. Filo çapında süpürücü kopya-pa...
Return 422 (500 değil) üyenin posta kutusu olmadığı zaman
listeFolders ve diğer okuma uç noktaları IllegalStateException'ı MailContext.toMailCredentials(), bir üyenin IMAP kimlikleri olmadığı zaman Verilen, kontrolörün...
İşlemsel NoReply bir Sent klasörüne göndermiyor
NoReply, posta kutusu ile yalnızca bir adres değil, her işlemsel olarak Hala kendi Sent klasörüne IMAP uygulaması yapmaya çalıştı, gürültülü bir ses çıkarmak AU...
Mailbox listesi API, UI- şekilli ************************
GET /api / e-posta kutuları ham varlık geri döndü (providerStatus, sonSyncedIn, Üye sayısı yok. Tools UI, ************'i okur, bu yüzden Durum her zaman tanımla...
Okunma için ayrıcalık tabanlı posta kutusu erişimini yazar
çözümForMailbox sadece doğrudan ÜyeMailbox ataması ile erişim sağladı, Bu nedenle posta kutuları ************ ile yüzeylendi Haklar NoSuchElementException -> "F...
Orijinal dosya adı ve içerik türü ek indirme
The ************ endpoints (hem kişisel kişisel ve paylaşılan e-posta kutusu kontrolörleri, İçerik-Disposition: eks Hiçbir dosya adı parametresi ve Content-Type...
Ad posta kutusu atandığında, değiştirilmiş veya kaldırıldı
Bir posta kutusu KAMO MAIL veyag'de bir üyeye verildiğinde, üyeler.EU Asla güncellenmedi, IMAPredentialService'ın IMAP'ı çözmesine neden oldu Bu üyeler için kim...
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...
SınıfCastException'ı önlemek için IMAPInputStream'ı ele alalım
JavaMail, kodlanmış bir String yerine IMAPInputStream'ı geri döndürebilir Bölüm.getContent() mesaj içeriği önceden düşünülmediğinde. The The The The The The The...
Use getHasAttachments() to match Boolean turnper type
************ bir Boolean (wrapper), bu yüzden Lombok HamsAttachments(),HasAttachments() değildir. İkincisi sadece ilkel boolean için var. 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 override'den destek
Ads fromAddressRequest to EmailSendRequest so the frontend can specify Hangi alias/shared/mailbox adresini göndermek için. SmtpOnlyProvider şimdi Şu andan itiba...
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...
E-provider domains varsayılan ayarlandığında org domains geri dönün
KamoMailDomainValidator, 403 ile orgs için zor bir şeydi DNS-verified domain in org domains but never add it to the email sağlayıcı domain kayıt. İlk aktif kull...
Wire up status filtre ve otomatik olarak gerekli şablonlar liste üzerinde listelendi
- EmailTemplateController.list() şimdi kabul ediyor?status= param ve filtreler Mevcut findByOrgIdAndStatus repository query - Auto-seeds ilk tohumlamayı kaçıran...
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.
Rename mailboxId→id ve sağlayıcıStatus+status posta kutusu listesinde yanıt
Üye posta kutusu listeleri için ön beklentileri olan Align alan isimleri.
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...
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
