변경 로그
무슨 일이야?
플랫폼에 대한 모든 개선 사항, 그것이 선적.
· kamo-internal
"모든 리드 / 계정 / 응용 프로그램" 캠페인에, 어떤 크기
캠페인 편집기의 각 id 상자는 이제 "모든 ..."상자가 있습니다. Ticked, 상자는 접힙니다 로그인 회원이 볼 수 있는 모든 사람을 위한 라이브 패널, 얼마나 많은 주소와 함께 - 작은 조직에 대 한 계산, 큰 하나에 대 한 inferred (" 4.9 억 ± 2%") 및 EmailService가 더 나은 인물을 발표함에 따라 자리매김. 회원은 왜 말을 사용할 수 없습니다. 편집기의 아무것도 전체 목록은 더 많은 것을 보유: - 저장된 목록은 서버 페이지 그리드 (주소, 상태별 필터, 표시 줄에 의해 검색)입니다. off), 저장은 진행 표시 줄과 슬라이스로 페이지의 변경을 보냅니다. - "Preview as"는이 페이지의 새로운 주소, 저장된 목록 및 각 ticked의 검색입니다. 청중, 브라우저에서 로드 된 첫 번째 fifty 주소의 메뉴 대신 한 번에 페이지. - 수신자 요약은 목록을 추가하고, 저장이 추가되고 각 청중은 일반적으로 말한다 아무도는 두 번 이메일이며, 옵트 아웃은 전송합니다. - 각 청중들이 수집한 정보를 전송합니다. staged outbox, workspace의 outbox 요약 및 편집기의 outbox 슬라이스 더 이상 poll: 그들은 캠페인 소켓의 진행 프레임에 다시.
· EmailService
캠페인은 모든 리드, 계정 또는 응용 프로그램에 참여할 수 있습니다
"모든 리드 / 계정 / 응용 프로그램"은 규칙이며 목록이 아닙니다. 캠페인에 저장됩니다 ( Bulk-provider blob, CampaignAudiences — no DDL), 그것을 설정하거나 누르면 누구의 액세스에 실행 전송, 그리고 파견자 청소에 의해 수집됩니다 몇 천명의 수신자 전에 어떤 아웃바운드 호스트는 수십억 명의 관객이 어디에서나 리스트로 존재하지 않습니다. - 도달 : 정확히 회원이 unmasked를 읽을 수 있는지 - 리드 스크린의 규칙 (지도; 다른 사람) 다른 사람의 연락처 정보보기; 할당되지 않은 리드 또는 무료 - 올 필요 제품), 매매에 동의한 전망 계정, 파이프라인을 가진 신청. - 읽기 : id에 의해 자신의 인덱스를 통해 작은 조직; hash-bucket의 큰 것들 테이블 (yb hash code on the primary key, pinned with the hint) — 이 유일한 범위 hash-sharded 테이블을 찾을 수 있습니다. - 계산: 작은 조직에 대한 정확한, 임의 해시 버킷에서 큰 것들을 위해 inferred 95 % 범위, NATS (email-audience) 이상의 세련된 라이브 및 Redis의 도달 당 캐시. - 가제 행은 일반 수령인, 체크 아웃 체크 아웃, CONFLICT DO NOTHING에 삽입 (모든 사람이 두 번 주소를 두 번) 표시하고 소스를 unticking은 어떤 단계로 다시 걸립니다. 캠페인은 없습니다 그 청중이 여전히 모여있는 동안 완성; 모든 것을 취소 중지합니다. - 전송 목록은 (/recipients/page, 주소 인덱스에 대한 추구) 슬라이스로 변경 (/recipients/append, /recipients/remove); 삭제 및 중복 더 이상 로드, 및 해제 시간에 페이지를 할당합니다. - 미리보기: /campaigns/audience/browse 페이지는 id lookup과 time-boxed search로 관객을 찾습니다. - PHI tenants는 모든 리드를 위한 리드 그리드의 per-record 액세스 트레일을 읽습니다.
· EmailService
모든 언어의 기본 페이지는 제품 말
모든 구독 링크 뒤에 페이지는 영어를 구합니다. 그것은 지금 말 모든 22 언어 제품 UI 배송 : 영어, 중국어, 힌디어, 스페인어, 프랑스, 아랍, Bengali, 러시아, 포르투갈, 인도네시아, 독일, 일본, Swahili, 터키, 타밀, 베트남, 한국, 이탈리아, 태국, 폴란드어, 우크라이나와 루마니아. - 모든 문장은 이제 메시지 번들에 살고, ********************* 소스로 영어 모든 누락에 대한 fallback. 숫자는 올바른 복수 양식을 가지고 각 언어에 대한, 날짜는 언어의 자신의 방법을 작성 (UTC). - 언어는 요구 당 선택됩니다: lang 모수 승리, 그 후에 browser's Accept-Language (품질의 값은 명예, pt-BR은 뒤로 pt), 다음 영어. 언어 리더 픽업을 통해 선택 모든 형태와 리디렉션. 페이지 세트 <html lang>, 내용 언어 및 Vary 및 목록 모든 언어, 자체에 명명, 일반으로 하단 링크. - 아랍어는 왼쪽에 오른쪽에 놓습니다 : dir="rtl", 논리 CSS, 미러링 스위치 및 조직의 자신의 단어 (이름, 주제, 주소) 유지 자신의 방향으로. 그 말은 결코 번역되지 않습니다. - 넓은 화면에서 페이지는 이제 전체 폭을 사용합니다 : 누가 그것은 왜 1개의 측에, 란, 주 및 발적외에 선택 아래. 720px에서 앞에 동일한 단 하나 란입니다. - 다른 변경 사항 : 모든 값은 여전히 탈출 (번역 된 텍스트 너무 주변), 스크립트 없음, 같은 잠긴 다운 헤더, 여전히 결코하지 아무것도 변경, 그리고 이름이 아무도 여전히 같은 링크를 neutral 페이지, 이제 독자의 언어. 시험은 각 뭉치가 정확하게 영어 열쇠를 가지고 있다는 것을 검사합니다 각 복수의 언어에 대한 주주 및 지점, 커버 언어 협상, 오른쪽 왼쪽 출력, 날짜, escaping, 및 언어는 저장 및 리디렉션을 제공합니다.
· kamo-internal
페이지 refetch 에 org 변경 이벤트 대신 로드 한 번
Rt.org.{orgId}.{domain}를 통해 모든 성공적인 쓰기 코어 NATS ( 도메인은 최초의 백엔드 경로 세그먼트이며 보안 / 건너뛰기). MediaService는 /topic/rt/org/{orgId}/{domain}, useOrgChanges에 릴레이합니다. 공유 소켓에 가입, 석탄 파열 및 화재 다시 후 재연결. los, billing 및 oauth-config 경로, 를 통해 이동하지 않는 forwardToApi, 자신을 게시. 이제 한 번로드 된 페이지는 도메인이 변경 될 때 조용히 볶음 : 없음 skeleton 섬광, 그리고 결코 unsaved 입력에. - 계정 : 할당 및 계정보기 (overview, History, 리드, 회원, 메모, 주문) - 노트 - 상업 : 주문, 계약, 예약, 조달, 요청, 서비스 작업, 서비스 요청, 가입, 구독, 개인 대출 및 노화 보고서 - 대출, 대출 세부 사항 및 제안 - 지식 베이스 홈 및 기사 - 경력, 법률 및 준수 - 설정, 계정 설정, 통합, 문서 범주 페이지, 및 시장 및 구독 계획 페이지 달력은 기존의 변경 피드를 석탄화합니다. 도전과제 회원의 잠금 항목.
· EmailService
이메일에 의해 취소는 명예, 떨어졌다
Unsubscribe@<sender's domain>를 제공하는 모든 대량 및 공유용 메시지 List-Unsubscribe 헤더에, 하지만 아무것도 읽는 그 mailbox - tenant 그것은 우리의 도메인이 아니었다 - 그래서 모든 옵트 아웃은 그 방법을 잃었다. 이메일: unsubscribe@hello.kamocrm.com **************** 모든 org에 대한, 받는 사람의 토큰 주제 : ****** ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** https 원클릭 링크 및 목록-Unsubscribe-Post는 변경되지 않습니다. - POST /api/internal/unsubscribe/mail은 보고한 것과 같이 도착합니다 mail 서버의 sidecar에 의해. 그것은 plus-address에 토큰을 찾습니다, 대상 (재: 자본, 왼쪽 URL 인코딩, 또는 RFC 2047 인코딩) 또는 앞으로의 링크, 설정 페이지와 정확히 해결 opt-out ledger (source)를 통해 그 org에 대 한 주소를 취소 "mailto", 메시지 ID). 전송을 기다리고있는 캠페인은 여전히 한 번의 클릭 링크로 끌어. 두 번 변경하지 마십시오. - 누군가가 아무것도 변경하지 않는 토큰없이 메시지 : 아무도 주소에서 추측하지 않는, 누구든지 쓸 수 있습니다. 아무것도 다시 보내지 않습니다. 로그는 outcome, org, sender 도메인 유지 and Message-ID, 주제나 신체가 절대 없다. - /api/internal의 나머지처럼 InternalAuthFilter 뒤에 앉아서 거부 64 KiB 이상의 요청 및 메시지 당 최대 5 개의 후보 토큰에 대한 승리.
· kamo-internal
Opt Out 탭과 리드 칩 업데이트 라이브
둘 다에 가입 *********** (EmailService 및 SecurityService 게시 후 모든 헌신적인 변경; MediaService 릴레이), 그래서 수신자 비결, 반송 또는 동료의 편집은 다음 부하 대신 한 번에 보여줍니다. org id는 문자열 accessor, 결코 라운드 번호입니다. 편집자의 절반 만들어진 변화는 주소가 그대로 움직일 때 유지됩니다. 또한 너비 캡을 선택과 두 단락에 탭을 떨어 뜨립니다.
· EmailService
Opt-out 화면은 누구나 목록을 변경할 때 재생됩니다
Ledger는 이제 OptOutChangePublisher를 모든 투입된 변경 후 알려줍니다. 기본 페이지, 바운드, 설정 회원 - 그리고 그것은 rt.org.{Id}.email-opt-outs를 미디어 서비스에 대한 핵심 NATS에서 릴레이합니다. 프레임은 주소가 없습니다. 화면은 시청자가 볼 수있는 것을 다시 읽습니다.
· SecurityService
리드의 옵트 아웃 변경은 열린 화면을 재생
여기 ledger는 변경 커밋 후 OptOutChangePublisher를 알려줍니다. rt.org.{orgId}.email-opt-outs on core NATS (이 서비스는 JetStream 스트림은 채팅입니다.>), MediaService에 의해 릴레이됩니다. 프레임에 주소가 없습니다.
· kamo-shared-library
Opt-out ledger는 조직의 목록이 변경 될 때 말한다
선택 리스너, 변경 커밋 후 말했다, 그래서 목록을 보여주는 화면은 한 번 로딩 대신 재생할 수 있습니다. 그것은 단지 조직을 운반 : 누가 선택은 자신의 오른쪽 뒤에있다, 그래서 화면은 시청자가 볼 수있는 것을 다시 읽습니다. 기존의 생성자는 변경되지 않습니다.
· KlusterServices
이메일: info@hello.kamocrm.com
모든 벌크 및 공유 입자 메시지는 이메일에 의해 무단 복제를 제공합니다. (List-Unsubscribe mailto), 하지만 그 주소는 postmaster에 갔다 결코 행동하지 않았다. 이제 postfix 손은 정확히 그 주소, 그리고 unsubscribe+anything@ 같은 도메인에, 스풀이 작은 파이프에 메시지, 새로운 구독 이메일 sidecar 메시지 EmailService's /api/internal/unsubscribe/메일. EmailService는 수신자의 토큰을 찾습니다. 제목 (또는 플러스 주소, 또는 전달 링크) 및 구독 한 번의 클릭 링크로 정확히; 유효한 토큰이없는 것은 허용하고 떨어졌다. - 다른 모든 주소는 이전으로 노선된다: 한 regexp line matching unsubscribe@hello.kamocrm.com은 postmaster catch-all 위에 앉아, 그리고 transport maps 이름은 가짜 도메인 만 다시 작성합니다. - 아무것도 반송 또는 대답 : 파이프는 이제까지 답변 "delivered"또는 "try later"및 5000 메시지의 스풀을 캡. - sidecar는 내부의 postfix-bulk-delivery-events 사본을 재사용합니다. 비밀, 선택적으로, 그리고 결코 출구, 그래서 그것은에서 postfix를 지킬 수 없습니다 시작 또는 그것의 서비스에서 pod를 가지고.
· AIService
판매 대리인은 조직의 이메일 opt-out 명부를 명예를 줍니다
이메일이 아웃바운드 게이트를 접촉하기 전에 조직의 이메일에 문의하십시오. 접촉의 주소에 대한 옵트 아웃 ledger. 주소는 연락처 중 하나입니다. 키 포인트: 리드의 이메일:<uid>, 회원의 (또는 사용자의) 회원의 경우:<id>, 그 리드 또는 회원이 동일하게 속할 때 조직. do-not-email list에 대한 주소, 또는 일시적으로, 거부 EMAIL OPTED OUT ORG LIST를 시작하는 이유와 SUPPRESSED OPT OUT. 그것은 접촉의 자신의 opt-out 및 모든 것의 앞에 체크 똑바른 사건, 그리고 그것은 대리인이 결코 만지지 않는 접촉 조차 적용합니다. 이름 * 목록은 이메일이 거부 될 수 없습니다 (EMAIL OPT OUT CHECK FAILED): 대리인 outreach는 unsolicited, 그래서 unanswered 체크는 결코 되지 않아야 합니다 이름 * 다른 채널은 변경되지 않습니다. recordOptOut를 통해 기록된 선택 해제 이메일, 또는 모든 채널에 대 한, 지금 또한 조직의 do-not-email 목록에 주소를 넣어 (reason UNSUBSCRIBE, 소스 ai-agent-opt-out, 접촉 열쇠를 가진 context AI CONTACT), 그래서 조직의 모든 sender와 리드 페이지는 그것을 참조하십시오. Ledger는 읽고 쓰기 자신의 거래에서 실행하고 결코 던져. 더 보기 ledger는 거래 자체이며, 콜러의 예외입니다. 거래는 refusal의 감사 행 또는 연락처 자체를 다시 롤합니다. 옵션 정보 실패한 쓰기는 기록되고 접촉의 자신의 opt-out는 아직도 서 있습니다. ledger는 세 가지 저장소에 bean으로 선언됩니다. 그것의 조사 새로운 opt-out 테이블은 1 차적인 DataSource에서 건축됩니다, 단지 1 이 서비스 있다. com.kamo.z.shared.email은 저장소 검사에 가입; 콩과 스캔은 함께 변경해야합니다.
· MediaService
릴레이 org는 /topic/rt/org/{orgId}/{domain}에 이벤트를 변경합니다
Writers는 rt.org.{orgId}.{domain}을 성공적으로 변경한 후 핵심 NATS에 게시합니다. org의 주제에 따라 각 pod는 한 번 로딩 대신 화면을 엽니다. SUBSCRIBE는 세션 org에 대해 확인되며, 클라이언트는 접두사에 SEND가 거부됩니다.
· kamo-marketing
숨겨진, per-visitor 사이트가 캡핑 된 프로모션에 대한 사냥, 그리고 방문자가 그것을 리드 신호
사냥 : 방문자 당 7 개의 자물쇠, 씨앗과 HUNT SECRET에서 생성, 모든 UTC 이동 페이지에 숨겨진 이전 대답과 심야, 시간 게이트와 72 시간 최소. Stateless 서명된 토큰; 상품은 템플릿에서 SecurityService에 의해 발행된 개인 코드입니다. Solr의 씨앗에서 파생 된 프로모션은 두 번째를 사용하지 않습니다. 슬롯. 스크립트/check-hunt.ts는 400의 사냥을 끝으로 재생하고 빌드 실패 어떤 단계가 해결되지 않는 경우 어떤 해결사가 표시됩니다. 의 방법, 누군가는 그것을 듣지 않았다 : 3 신호. 이름 * 랜딩 페이지의 복사 글리치에서; 다음 페이지 이름을 찾기 (Pricing 첫째) 링크, 그 슬로우에 nav 링크, pill은 카운트를 유지 페이지와 세 번째는 사냥을 엽니다. 한 번에 한 번에 데스크탑 출구 세션 및 각 단계에서 "시작 무료". 각 단계는 분석 사냥* 이벤트입니다. 모든 것은 종료되지 않습니다 : 템플릿 없음, 비밀 없음 또는 코드가 남아 있지 않습니다 footer line, 신호 및 /api/hunt 답변 닫기 /hunt 상태 템플릿으로 정확히 용어는 정의한다.
· SecurityService
템플릿 프로모션에서 개인 단일 사용 코드 이슈
Kamocrm.com 사이트 사냥 손 각각의 해결사 코드를 자신의, 뿐만 아니라 첫 번째 N 솔더는 이제 하나를 얻을. 공유 코드는 할 수 없습니다 : 첫 번째 솔더는 모든 사람에게 할인을 할 것입니다. - PromotionCodeIssuer : INACTIVE 프로모션은 템플릿입니다. maxRedemptions는 많은 개인 코드가 발급 될 수있는 방법입니다. 슬롯은 촬영 상태 UPDATE에 의해 두 개의 복제가 과발 할 수 없습니다. 전화 번호 name the code, 그리고 다시 발급된 코드를 반환하지 않고 두 번째 슬롯을 복용. - 클러스터의 *********** 내부 비밀. - 공개 프로모션 피드는 단일 사용 코드를 삭제, 그래서 개인 코드 홈페이지 영웅에 나열하거나 광고 할 수 없습니다.
· EmailService
모든 구독 링크 뒤에 실제 선호 페이지
취소 링크가 표시된 바는 반드시 체크-or-leave 카드를 엽니다. 누가 누구 단지 몇 가지 이메일이 그렇게 말하지 않았다, 그리고 아무것도 왜 그들에게 말했다 그들은 우편으로, 무슨 일이 도착, 또는 그 선택 기록에 보관되었습니다. 이 링크는 그 주소와 보낸 사람에 대한 기본 페이지를 엽니다. 모든 것에서 비결은 먼저 와서 하나의 압박입니다. 그 후, 독자는 한 종류의 메일을 전환 할 수 있습니다 (하나 이상의 경우 선택할 때, 또는 하나는 이미 떨어져 있습니다) 또는 30에 대한 모든 것을 일시 중지, 60 또는 90 일. 한 번에 취소할 수 없는 경우, 또는 그들이 떠난 이유를 말하십시오. 페이지는 왜 이메일이 왔는지, 무엇 그들은 여전히 수신되고, 각 변경이 기록됩니다. 모든 변경은 요청과 함께 옵트 아웃 ledger를 통해 이동 그것은에서 온, 그래서 역사는 선택이었다 독자의 자신의. 페이지를 열어보기 및 변경 아무것도. 원클릭 요청 메일 클라이언트 (RFC 8058)는 여전히 모든 것을 취소, 항상 응답 200, 여전히 그 전송에서 누락 된 캠페인 행을 잡아. 링크를 그 이름은 아무도 모든 경로에 동일한 중립 페이지를 얻고 결코 ledger에 도달. 페이지는 스크립트가 없는 HTML 양식입니다. 그것은 sender's에서 그려집니다 상표 색깔은, 빛 둘 다에 있는 WCAG 대조를 만날 때까지, 조정했습니다 어두운 테마, 그리고 그것은 320px 넓은에서 작동합니다. 모든 응답은 엄격한 내용 보안 정책, 참고자 없음 ( 토큰은 URL에 있습니다), no-store, noindex 및 프레임 금지. 억제 / 페이지에 살고있는 렌더링 :보기 기록, 순수한 렌더링기 테스트 및 미리보기는 직접 통화, 토큰을 해결하는 서비스 및 ledger에 이야기. 관제사 단지 노선 및 세트 우두머리.
· kamo-internal
이메일 옵트 아웃 칩 및 패널 리드 페이지
리드의 이메일 주소 옆에 이제 사람이 말하는 칩 이메일이 될 수 있습니다: 이메일 허용, 모든 이메일에서 Opted, 날짜까지 일시 중지, 일부 이메일, 또는 이메일 주소가 없습니다. 그것은 설명 패널을 엽니 다 일반 단어의 현재 상태 (그게 변경, 때 왜), 스위치와 함께 이메일의 각 종류, "모든 이메일에서 채택" 스위치, 30/60/90 일 일시 중지 또는 ending 하나, 과 최근 역사 와 the request details behind a toggle. 변경이 다시 한 사람에 도달 할 때,주의가됩니다 필요한, 왜 말하고, 그것을 기다리고 저장. 변경할 수없는 회원은 왜 모든 읽기 전용을보고; 역사 테이블 이전에 존재 패널은 실패 대신 진정으로 말한다. 이메일 빠른 행동은 이제 모든 이메일에서 선택했을 때 먼저 요청합니다. 또는 그것을 일시적으로 쓸 수 있고, 회원은 한 번의 응답을 위해 어쨌든 쓸 수 있습니다. proxy 경로를 추가합니다. ********************* 그래서 패널을 통해 서버의 필드와 코드는 오른쪽에 오류를 넣을 수 있습니다 입력.
· SecurityService
리드의 이메일 opt-out 변경
그 사람이 이메일이 될 수 있는지, 그리고 org-wide opt-out 설정 목록없이 변경하십시오. *** * *** 주소의 상태에 대한 답변 조직의 opt-out ledger, 그것의 10 가장 최근 변경 및 화제 자주 묻는 질문 누가 그것을 다음과 같이 납 자체 (401/404/403을 읽을 수 있습니다 리드를 열고, 무료 - 모든 리드 포함). 그 전망의 호출자 리드의 연락처 세부 사항은 마스크 주소가 동일한 방법과 아니오를 마쳤다 IP, 브라우저 또는 세션 세부 정보. 같은 경로에 PUT가 변경됩니다. 편집 할 때 정확히 허용됩니다. 리드의 연락처는 허용됩니다 ( 할당, 또는 EDIT LEAD CONTACT INFO OTHERS 플러스 VIEW UNASSIGNED LEADS는 할당되지 않은 리드에 대한) 결코 주소 마스크입니다. 변경은 회원과 "lead:<id>"에서 MANUAL으로 기록됩니다. 요청의 주소 및 브라우저 및 세션의 해시. 자주 묻는 질문 다시 ledger가 시행 (400 필드 "comment"); 때까지 역사 테이블은 503 HISTORY UNAVAILABLE으로 변경됩니다. 각 각 변화는 또한 리드의 자신의 역사 탭에 행을 나타. ledger는 이메일 서비스로 자체 스키마 프로브로 여기 선언됩니다.
· EmailService
Org 관리자는 전체 선택 해제 목록을 볼 수 있습니다
설정 -> 이메일 -> 뚱 베어 이제는 /api/email/opt-outs의 API를 가지고 있습니다. MANAGE 이메일 OPT OUTS (god bypasses) : 지난 30 일 요약, 목록 국가, 이유 및 주소에 의해 필터링, 전체 역사와 하나의 주소 다른 곳에서는 조직에 나타나고, org-wide 활동, CSV 수출 및 변경 및 노트는 opt-out ledger를 통해 이루어집니다. 모든 변화는 회원에 대한 기록, 클라이언트는 프록시를 전달, 그리고 그들의 세션의 해시. Ids는 ISO-8601로 문자열과 시간으로 전송됩니다. 웹 앱이 기대합니다. 역사 표가 목록, 요약, 주소 및 수출이 될 때까지 do-not-email 목록에서 일하고, 변경 답변 503 와 HISTORY UNAVAILABLE 대신 반으로 만들었습니다. schema probe는 이제 기본 데이터베이스에 쿼리를 구축합니다. 그것은 이 서비스에 JdbcTemplate bean 만 제공, 메일 서버의 MySQL 하나, 그래서 옵트 아웃 테이블과 모든 회원의 변경을 볼 수 없었다 수정되었습니다.
· kamo-internal
설정 -> 이메일 -> 뚱 베어 아웃, 조직의 do-not-email 목록
이메일로 보내지 않는 모든 사람, 한 곳에서. masthead 말한다 방법 많은 떨어져 모두 이메일 및 왜 (구입, 반송, 스팸으로 표시, 중지 요청), 얼마나 많은 정지 어떤 종류의 또는 일시 중지, 그리고 목록이 30 일 이상 이동. 목록은 검색 및 필터링; 주소는 다음과 같습니다 : 그들은 모든 이메일에 대한 하나의 행을 수신, 메일의 종류 당 하나, 및 일시, 저장 한국어 자주 묻는 질문 그 주의가 그들의 동의의 기록이기 때문에. 리드로 알려진, 연락처, 캠페인, 작업 응용 프로그램, 작업 경고 및 AI 주소를 공유하는 Assistant opt-out 타임라인으로 각 변화의 역사: 어떤 이동 (before/after), 누가하고 무엇을 통해, 주의, 그리고 요청에서 온 (network 주소, 운송 체인, 브라우저, 언어 org-wide 활동 피드 플러스, 손으로 주소를 추가, CSV 수출. 으로 Gated MANAGE EMAIL OPT OUTS ( MANAGE EMAIL SETTINGS의 자녀), RoleRightType.ts에 미러링 rightsHierarchy.ts; 탭, 메뉴 입력 및 설정 카드는 그것으로 만 나타납니다.
· kamo-internal
사각, 경사진 단추 및 각 scrollbar에 2px 끈적한 엄지
막대기의 4개의 단추 (시작하기 위하여, 단계 뒤, 단계 앞으로, 끝에 점프) 지금 20px는 단단한 구석을 가진 사각이고, 엄지는 2px 반경만 지킵니다. 둘 다 1 화소 인셋 베벨을 나타낸다 - 정상과 왼쪽, 어둠을 따라 바닥과 오른쪽 - 반투명 흰색과 검정색, 그래서 같은 베벨 앉아 페이지의 슬레이트, 브랜드 통, 터미널의 어두운 팔레트. 피부의 단 하나 `rounding` 분수는 2개의 화소 레이디, thumbRadius이고 buttonRadius, "픽셀의 커플"은 절대입니다. 정연한 열쇠는 입니다 피부 보다는 오히려 기하학: 그것은 72px 지구에 짧은 막대기 (10x10)에 붙듭니다 arcade 피부에서, 그의 모습은 그렇지 않으면 변하지 않습니다.
· EmailService
모든 억제 검사 및 반송은 옵트 아웃 ledger를 통해 간다
SuppressionService는 이제 EmailOptOutLedger를 요청하므로 확인은 do-not-email list, pauses를 참조하십시오. 과 같은 주제, 과 같은 역사의 반송 땅은 불평으로. Callers 이름 메일의 종류는 다음과 같습니다 : 캠페인 (물자, 복원, 늦은 문)에 대해 물어 MARKETING CAMPAIGNS, SHARED ARTICLES에 대한 기사 공유. Bounces는 서버의 대답을 실행하고 역사의 행에 캠페인. OptOutSchemaProbe는 KamoInitializerService가 두 가지 새로운 것을 만들었습니다. 테이블 아직; 그것까지, 불완전한 테이블에 실패 대신 목록에 혼자 명예를 보냅니다.
· kamo-shared-library
One opt-out ledger, 주제, 일시 정지 및 모든 변경의 역사
Do-not-email 목록은 읽지 않고 변경하거나 설명 할 수 없습니다. 이 추가 한 곳에서 읽고 서면, 모든 서비스에 대한: email optout topics 메일 한 종류, 또는 그것을 모두 일시적으로 중지 한 주소 email optout events insert-only history: who (recipient, member, system), 어디에서나 (클라이언트 IP, 전체 X-Forwarded-For chain, 사용자 에이전트, 언어, host, referer, session hash), 왜 (지역, 근원, 주, 의견), (campaign, Lead) 및 전후의 상태를 통해 email suppressions는 의미를 유지하므로 이미 여전히 그것을 존중합니다. EmailOptOutLedger 답변 "이 전송됩니다"모든 세에서 한 역사의 행을 쓰기 상태의 일부가 실제로 이동. 메일이 다시 왜 말해야 하는가? 동의의 기록입니다. 새로운 테이블이 ledger가 목록으로 돌아올 때까지 혼자서 변경하지 않고 기록 할 수 없습니다. @Service가 아닌 일반 클래스 : 모든 서비스 스캔 com.kamo, 이메일없이 하나 repositories는 그것을 건설하는 것을 실패할 것입니다. 각 서비스는 @Bean로 선언합니다. 또한 MANAGE EMAIL OPT OUTS (320), 설정에 대한 org 권리 -> 이메일 -> 옵트 아웃, 아이의 MANAGE 이메일 설정.
· kamo-internal
아웃바운드 이메일 호스트, 윈도우를 보내, per-host warm-up 및 staged outbox
- 설정 → 플랫폼 → 구성은 플랫폼 뒤에 아웃바운드 전자 메일 호스트 탭을 얻습니다. 오른쪽 MANAGE OUTBOUND EMAIL HOSTS: 모든 조직과 공유된 호스트와 한 사람이 유지 플랫폼 조직의 모든 연결 설정, 가용성, 연결 확인, 시험은 각 주인의 워밍업 보냅니다. - 설정 → 이메일 → 대량 이메일 전송기는 대량 프로비저 / 오버뷰를 받기에 재건됩니다. 교체의 조직의 자체 호스트 및 플랫폼 (단체당 스위블), 라운드 로빈 보기, 보낸 사람, 보낼 창 편집기 (주일, 몇 시간 범위, 하룻밤 범위, 그것의 자신의 시간대 또는 조직의), 그리고 호스트 당 정규식 워밍업 보고서. 워밍업 더 이상 전환되지 않습니다. - /marketing/email/outbox lists 각 단계별 이메일 — 호스트가 그것을 취할 때만 구성 — 단일 이메일, 선택, 또는 나머지 모든 것을 취소하지 않고. 작업 공간, 배너 및 캠페인 편집기 링크를 들고 새로운 per-host 용량을 읽으십시오. - 공유 호스트 편집기 (resolved address, duplicate and private-address) refusals), 아웃바운드 호스트 및 아웃 박스 API 클라이언트, 그리고 수신자 상태 CANCELLED.
· EmailService
Org 당 여러 아웃 바운드 호스트, 라운드 로빈을 보내, 각각의 자체에 따뜻하게, 보낸 창 내부
조직의 캠페인 메일은 이제 아웃바운드 호스트의 번호를 통해 잎, 한 메시지 1개의 대량 공급자 대신에 교체에 있는 시간. - 호스트: 조직의 소유(outboundHosts in its bulk Provider blob) 및 플랫폼 (platformOutboundHosts 플랫폼 조직의 blob), 모든 조직과 공유 또는 플랫폼 ONLY. 모든 SMTP 설정은 다음과 같습니다 : 보안, SASL 메커니즘, TLS 검증 및 프로토콜, HELO 이름, envelope sender, timeouts, hourly/daily limits, DSN, 8BITMIME, SOCKS. HostSessionFactory는 세션을 구축합니다. EmailSmtpService.sendVia는 그것을 통해 보냅니다. - 같은 서버는 두 번 추가되지 않습니다 (같은 이름 또는 어떤 공유 주소, 포트 또는 로그인), 그리고 조직의 호스트는 공용 서버이어야한다: 개인 및 클러스터 이름과 주소는 모든 연결 전에 저장하고 다시 거부됩니다. - 워밍업은 주인과 항상 위에 있습니다. WarmupService는 WarmupHandle에서 작동합니다. 플랫폼 호스트는 하나가 있습니다. 모든 조직에 의해 공유 따뜻한. 새로운 시작은 현지에서 시작합니다. - WarmupReleaser는 각 조직의 호스트를 가로지르는 유일한 sender입니다. 그것의 구멍에, 그것의 모자에, 브레이크드, 그것의 자신의 한계에 또는 뒤로 후에 실패 후에 연결. 연결, TLS 또는 로그인 실패는 더 이상 수신자에 대한 시도를 계산합니다. - 조직 당 창을 보내십시오 (일, 1개 이상 범위, 자신의 지역 또는 org's). 제품 소개 창의 오픈 시간 만에 매일 캡을 퍼집니다. - Staged outbox: /api/email/campaigns/outbox 리스트는 수신자 및 취소 또는 복원합니다. 취소 된 수신자는 메모 (상태 DDL 없음)로 SUPPRESSED이며 CANCELLED로 다시 읽습니다. - 엔드포인트: ****** ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** 플랫폼 호스트 **************** MANAGE OUTBOUND EMAIL HOSTS 뒤에. 한 호스트 쓰기 답변 410. - OutboundHostBackfill은 PLATFORM ONLY 호스트로 k3m1 릴레이를 종자하고 하나의 호스트 blobs를 마이그레이션합니다. 스키마 변경 없음.
· KlusterServices
Postfix-bulk는 EmailService [skip ci]의 모든 sender를 허용합니다
릴레이는 이제 모든 조직의 캠페인 메일이 갈 수있는 플랫폼 아웃 바운드 호스트입니다. 그 조직에서 보내는 것과 같이. null sender는 여전히 거절됩니다. 와 함께 4xx. 범위는 변경되지 않습니다 : mynetworks 및 NetworkPolicy 제한 그것 EmailService 팟. 직접 적용 (kubectl apply -f ***********
· kamo-shared-library
MANAGE OUTBOUND EMAIL HOSTS, 플랫폼 콘솔 아웃바운드 이메일 호스트
아웃바운드 전자 메일 호스트 캠페인 메일에 대한 플랫폼은 다음과 같습니다 : 호스트 공유 모든 조직과 하나의 플랫폼 조직에 보관, 그들의 자격, 가용성 및 워밍업. EmailService의 PlatformOutboundHostsController에 의해 강화됨 플랫폼RightsResolver. Appended, 그래서 기존의 권리는 renumbered.
· kamo-internal
삭제, 필터 및 전환 NoReply 아웃바운드 행
감사 페이지는 하위 시스템 열과 필터, 체크 박스 선택을 얻을 "select all" 과 "select all matching", and deletes for one row, 선택된 행, 필터를 일치하는 모든 것, 또는 모든 것, 각 테이블 이름을 지정하는 확인 뒤에 행이 제거됩니다. "기록 및 유지" 스위치 각 하위 시스템의 녹화에 또는 끄기 긴 행이 유지되는 방법을 설정한다. 요청은 각 삭제가되고, 그리드의 선택 모델은 read, live in *********** 자신의 테스트와 함께.
· EmailService
NoReply ledger는 subsystem, pruned에 의해 필터링 할 수 있으며 기록하는 것을 말했습니다
각 행은 이제 하위 시스템을 이름을 지정하고 템플릿을 보내, 템플릿 키. EmailTemplateService 및 캠페인 발송인은 NoReplyOutboundSource는 SMTP의 주위에 보냅니다; 다른 사람은 입니다 다운로드 NoReplySubsystem 지도 canonical 템플릿 키 subsystems 및 테스트는 원뿔 템플릿지도가 none으로 실패합니다. 삭제는 NoReplyOutboundLedger를 통해 테이블 자체로 이동 : 한 행, 최대 1000개의 선택된 행, 목록의 필터와 일치하는 각 행, 또는 전체 ledger (TRUNCATE), 이는 확인에 대해 물어. 대량 삭제는 500의 펑크에서 실행됩니다. NoReplyOutboundSettings는 subsystem 및 보존 (기본적으로 30 일, 0 삭제 될 때까지 행을 유지), 캐시 파드 당 15 초. NoReplyOutboundRetentionSweep는 1개에 시간적으로 말립니다 팟. 모든 새로운 엔드 포인트는 목록과 같은 신 전용입니다.
· InitializerService
독특한 (campaign, address) 인덱스, 신선한 환경
이메일서비스는 모두에 ****************를 만들기 위하여 이용했습니다 시작; 이 클러스터에 DDL은 대신 여기에 속한다. Idempotent, 자동 공급 (YugabyteDB는 온라인 인덱스를 구축), 중복은 계산 및 기록, 절대 삭제 - 접촉 행은 캠페인의 영구 기록입니다 이름 * EmailService는 이 이름의 인덱스에만 체크합니다.
· kamo-internal
캠페인 편집기는 가장자리를 작성하고, 자신의 열에 토큰을 병합
주제는 캠페인 제목과 상태 칩 옆에 청중에 앉아, 그래서 작곡 단계는 이메일 몸 혼자, 페이지의 중간을 채우고, 컬럼의 병합 토큰과 견적 요청 아무것도 자신의 것에 저장, 그래서 페이지는 이제 서버를 편집하고 요청하지 않은 떠나기 전에, TemplateInlineEditor는 회원의 자신의 신체 편집을보고 Quill's load-time normalization에서 마크가 캠페인을 만 열지 않습니다.

당신의 우주는 기다리고 있습니다.
몇 분 안에 무료로 시작하세요. 준비가 되면 언제든지 제품을 추가할 수 있습니다.
영원히 무료 - 신용 카드 필요 없음