Rekam ketiga bendera IMAP, dan katakan mengapa indeks belum dapat melayani daftar
Migrasi telah berjalan, sehingga _ menjawab ada dan SearchIndexService sekarang menulis keduanya dibaca dan dibintangi. Indeks telah mencatat dua dari tiga tand...
Jangan baca atau tulis adalah _ menjawab sebelum kolom ada
Mengikuti perubahan shared- library unpemetaan field. Tidak ada di dikerahkan path sekarang menyentuh kolom yang belum dibuat KamoInitializer. Daftar index-bac...
Berhenti membocorkan koneksi IDLE IMAP pada setiap rekoneksi peramban
Menginterupsi thread IDLE tidak dapat mengakhiri sebuah IDLE: itu diparkir dalam sebuah blocking socket dibaca bahwa hanya melihat bendera sekali kembali baca s...
Setengah sumber dari 1b353f, yang hanya berkomitmen tes
1b3553f dipentaskan dua berkas tes baru dan tidak ada yang lain, sehingga mendarat menegaskan nubled FolderManager.set Tanda yang belum ada dan tidak dapat diko...
Hentikan bendera IMAP tanpa nama yang overwritten
Bendera IMAP adalah independen, jadi "tandai ini membaca" harus mengatakan apa-apa tentang bintang. EmailIlapService.setFlags selalu diambil Boobles bernulable ...
Berhenti mengirim kredensial bersama sebagai baku konfigurasi
Sandi berbagi platform ini dipanggang sebagai fallback untuk DB _ PASSWORD dan MINIO _ ROOT _ PASSWORD, sehingga hidup dalam repo ini dan dalam gambar dibangun ...
Ambil penelepon dari sesi, bukan dari string kueri
GET / api / calendar / kalender mengambil UserId sebagai parameter permintaan, jadi berubah angka dalam URL membaca kalender siapa pun - dan karena kalender dil...
Membuat MKCOL membuat sebuah buku yang benar-benar dapat disimpan
mkCol membangun ContactBook membawa baik organisasi maupun pemilik dan kembali 201 terlepas, sehingga membuat sebuah buku alamat dari CardDAV klien gagal di flu...
CockroachDB- hanya SQL yang ditolak PostgreSQL
CockroachDB mengeja tipe teks STRING; PostgreSQL dan Yugabita DB menggunakan TEXT. 25 gips melintasi query asli masih memancarkan CAST (x AS STRING) dan :: STRI...
Buku alamat Scope kepada anggota yang memilikinya
Kontak yang dipindai oleh organisasi saja. listBooks (orgId) was findByOrganizationId (orgId), dan query daftar kontak dibuka WHERE c.contactactBook.organaction...
Diterbitkan baris ids sebagai string - sebuah buku baru 404d saat Anda memilihnya
CockroachDB unik _ rowid () menghasilkan 64- bit id. Yang asli dari contact _ books adalah 1200081912680906758; JavaScript JSON.parse putaran masa lalu Nomor. M...
Rekam ukuran pesan daripada menulis nol
SearchIndexService menulis sizeBytes = 0 untuk setiap pesan yang pernah diindeks, di bawah komentar "Tidak tersedia dari amplop". Itu tersedia - mengambil Profi...
Kembalikan file 2b23346, dan menjawab pengiriman besar dengan 413
2b23346 berkomitmen melalui indeks pribadi yang tidak pernah berasal dari HEAD, sehingga pohon tersebut hanya memegang tiga berkas yang dipentaskan ke dalamnya ...
Berhenti capping setiap kirim di 1MB, sehingga gambar disisipkan benar-benar dapat keluar
Menyamar dengan gambar ditempelkan gagal dengan "Gagal mengirim email" kosong. The komposer inline pasta ke dalam tubuh HTML sebagai base64 data URI, yang naik ...
Stop Hibernasi mangling "::" cast dalam asli SQL
Pengubah pencarian Hibernasi memperlakukan ":" sebagai sebuah titik dua yang lolos dan ke depan single ":". CockroachDB diterima * * * * * * * * * * * * * * * ...
Terus coba pengindeksan yang tahan lama konsumen NAS setelah menyebarkan
Sebuah rolling menyebarkan overlap pod dan yang keluar masih memegang tahan lama konsumen, jadi pod yang masuk mengikat ke "email-metadata- indexer" gagal denga...
Tambahkan pengindeksan metadata ke kolom terurut
Mengikuti kamo- shared-library mengubah peta percakapan / search _ index kolom array sebagai String [] / UUID [] daripada Daftar < T >, yang merupakan apa yang ...
Terikat indeks folder besar dan hentikan pada kegagalan struktural
Pekerjaan yang belum selesai dari sesi yang sedang berlangsung, menyapu sehingga pohon bersih. Indeks besar berjalan halaman dengan totalPages diatur ke Intege...
Tidak pernah cocok memimpin terhadap perusahaan alamat sendiri
Petunjuk yang e-mail diatur ke noreply @ kamocrm.com cocok dengan setiap pesan yang alamat yang pernah dikirim - satu catatan utama muncul seluruh perusahaan ou...
Halaman menyapu memimpin sampai jendela ditutup
Satu halaman tetap kehilangan surat diam-diam ketika kotak surat mengambil lebih dari pesan pagesize diantara ticks - sebuah newletter burst, sebuah inbox sibuk...
Alamat balasan di ReplyTo, dan berhenti membocorkan pengecualian SMTP ke UI
Jawaban singkat ke pemberitahuan KamoCRM gagal dengan '{"error": "Alamat tidak valid"}' kata demi kata dalam kotak jawaban. String itu adalah kata-kata surat Ja...
Berhenti mengklasifikasikan sebuah akar HTML multipart / related sebagai lampiran
Setiap email transkasional yang kami kirim dengan logo org inline tiba di diri kami sendiri / pelihat pesan dengan subjek yang benar dan badan yang benar-benar ...
Pindai repositori MFA terbagi
MfEnrollment Service adalah sebuah @ Service dalam kamo- shared-library, sehingga wildcard @ ComponentPindai ("com.kao") dalam aplikasi ini konstruksi apakah at...
Merge duplikasi kunci kamo yang crashlooped EmailService
Kapsul EmailService baru telah di CrashLoopBackOff sejak 16e8a05 - 22 memulai kembali, tidak pernah sekali dimulai. Snakeaml raise DuplicateKeyException on a re...
Harden the kubectl download against flaky egress [skip ci]
dl.k8S.io atas pelari itu keluar sesekali tetes pertengahan - transfer: curl: (56) OpenSSL SSL _ read: dekripsi gagal atau rekaman mac buruk yang gagal menyebar...
Tambahkan CampaignController REST titik akhir untuk / api / email / kampanye
Area kerja surel / penyunting panggilan GET / POST / api / email / kampanye dll, tapi hanya Layanan Kampanye (@ Service) pernah dibuat - tidak ada @ Controller ...
Hapus peraba unsubscristMatcher ambigu yang startup jatuh
EmailService mount two servlets (MVC DispatcherServlet + Spring- WS MessageDispatcherServis at / *), so a bare string request Matcher ( "/ api / email / unsubsc...
Hentikan serialisasi xovoca2 getter yang dihitung yang memecahkan cache MailCreified Redis
Mailcreaceis cache in Redis (GenericJackson2Json). Ditambahkan 'isXostal2 ()' getter boolean diserialisasi sebagai properti "xovoca2" tetapi tidak memiliki bida...
Scope KamoMail mailbox / domain listing ke domain org sendiri (kebocoran cross-tenant)
SECURITY: * * * * * * * * * * * * * 'SELECT email DARI virtual _ users' (dan * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 'SELECT...
Persist yang dipilih penyedia OAuth pada callback sehingga berhenti kembali ke KamoMail
Mengganti suatu org ke Microsoft 365 (atau Google Area Kerja / Zoho) tidak pernah macet: OAuth callback menyimpan token dan hanya membalik status pada baris pen...
Resolve welcome- email logo dari host tema org, bukan apex
Logo header / footer dalam email sistem (selamat datang / verifikasi) dibangun sebagai * * * * * * * * * * * * * situs pemasaran, sehingga untuk orgs pelanggan ...
Konstant- waktu pelatihan - rahasia tahun auth dibandingkan (oracle waktu)
Ganti string.equals dengan MessageDigeñal Equal sehingga latensi respon tidak dapat kebocoran X-Internall -Auth berbagi rahasia byte-by-byte. Kabur - menyapu le...
Kembali 422 (bukan 500) ketika anggota tidak memiliki kotak surat
listFolders dan titik akhir membaca lainnya melemparkan IllegalStateException dari MailContex.toMailcredit () ketika anggota tidak memiliki kredensial IMAP Diat...
Jangan simpan surel Noreply transkasional ke folder yang dikirim
NoReply adalah alamat send-only tanpa kotak surat, tetapi setiap transaksional mengirim masih percobaan append IMAP ke folder Terkirim, menghasilkan berisik AUT...
Daftar kotak surat API mengembalikan UI-shaped * * * * * * * * * * * * * * * * *
GET / API / Email / kotak surat mengembalikan entitas mentah (providerStatus, LastSyncedAt, tidak ada jumlah anggota). Pengaturan UI berbunyi * * * * * * * * * ...
Otorisasi akses kotak-surat berbasis untuk membaca + send-as
resolveForMailbox hanya memberikan akses melalui penempatan langsung Anggota Mailbox, Jadi kotak surat muncul melalui... Hak melempar NoSuchElement Exception - ...
Pertahankan nama berkas asli dan jenis isi pada unduh lampiran
* * * * * * * * * * * * * * * * * titik akhir (kedua pribadi dan shared-mailbox controller) adalah memancarkan Kontent-Disposition: lampiran tanpa parameter nam...
Selaraskan keanggotaan surel ketika kotak surat primer diberikan, diubah, atau dihapus
Ketika kotak surat ditugaskan untuk anggota dalam KAMO _ MAIL org, members.email tidak pernah diperbarui, menyebabkan EmailCredentialService gagal untuk menyele...
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...
Menangani IMAPInputStream dalam getMessage untuk mencegah Eksepsi Kelas
JavaMail dapat mengembalikan IMAPInputStream daripada String yang diterjemahkan dari part.getContent () ketika isi pesan belum pernah ada sebelumnya. The straig...
Gunakan getHasAttachments () untuk mencocokkan tipe pembungkus Boolean
* * * * * * * * * * * * * adalah Boolean (wrapper), begitu Lombok menghasilkan getHasAttachments () bukan isHasAttachments (). Yang terakhir saja ada untuk bool...
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...
Dukungan dari override Alamat saat mengirim
Tambahkan FromAddressRequest ke EmailSendRequest sehingga antarmuka dapat menentukan alamat alias / shared / mailbox untuk dikirim. SmtpOnlyProvider sekarang me...
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...
Fall back to org _ domains when no email _ provider _ domains default set
KamoMasin Validator sulit-gagal dengan 403 untuk orgs yang memiliki domain DNS-verified dalam org _ domains tetapi tidak pernah ditambahkan ke email Registri do...
Revert replyTo change - smtpService.send mengambil lampiran tidak replyTo
Tampilkan filter status dan biji otomatis yang diperlukan dalam daftar
- Email TemplateController.list () sekarang menerima? status = param dan filter menggunakan permintaan repositori FindByOrganidAnStatus - Auto- benih diperlukan...
Seperti apa yang Anda lihat pengiriman?
Semua pembaruan ini secara otomatis mendarat di ruang kerja Anda. Mulai bebas dan menontonnya tumbuh minggu demi minggu.