동의를 확인한 뒤, 내 Gmail로 제안을 준비하는 순서
대상 목록과 동의 검토부터 개인화 메일, 본인 Gmail 최종 확인, 순차 대기열 등록과 처리 결과까지 현재 코드를 기준으로 살펴봅니다.
이 글의 목차
제안 메일을 준비할 때는 서로 다른 두 질문에 답해야 합니다. 이 사람이 우리 서비스와 관련 있는 사람인지, 그리고 이 목적의 연락을 받아도 되는지입니다. 주제가 잘 맞거나 공개된 이메일이 있다고 해서 두 번째 질문까지 해결되지는 않습니다.
Connecting은 수신 동의가 확인된 대상에게 마케팅·협업 제안을 준비하고 발송하는 업무용 아웃리치 흐름을 다룹니다. 이 글은 2026년 10월 9일 저장소의 실제 코드를 검토해 정리했습니다. 구현을 읽은 기록이며, 운영 중인 계정에서의 발송 성공이나 배포 상태를 확인한 결과는 아닙니다.
대상이 적합한 이유를 제안 내용과 연결합니다
먼저 상대의 활동 주제와 제안하려는 서비스가 어떻게 연결되는지 적습니다. 지금 구현된 추천 코드는 카테고리, 주제와 키워드, 타깃 독자의 관련성을 비교하는 규칙을 사용합니다. 추천 결과는 검토할 후보를 좁히는 데 쓰고, 높은 순위라는 이유만으로 수신 동의나 협업 의사가 확인됐다고 판단하지 않습니다.
현재 네이버 블로그 협업은 이 흐름의 활용 사례입니다. 서비스에 맞는 주제인지 살피고, 어떤 사용 경험을 제안할 수 있는지 생각합니다. 대상의 규모만 보고 고르기보다 제안 내용을 실제로 설명할 수 있는지 확인합니다. 적합하다는 이유를 쓰기 어려우면 먼저 제안의 목적과 대상을 다시 좁힙니다.
후보 메모에는 확인한 사실과 추정을 나눠 적습니다. 공개 글에서 다루는 주제를 확인했다면 그 근거를 적을 수 있습니다. 구매 의사나 개인 사정처럼 확인하지 않은 내용을 만들어 개인화하지 않습니다. 이 과정을 거치면 초안에서도 왜 이 제안을 하는지 구체적으로 설명할 수 있습니다.
예시
대상 검토 메모 예시
확인한 관련 주제 / 제안할 실제 사용 장면 / 상대에게 필요한 정보 / 수신 동의 확인 상태. 빈칸은 추측으로 채우지 않고 검토 대상으로 남깁니다.
출처
- 추천 기준 구현 · 2026-10-09 확인저장소 connecting · src/lib/recommendation-model.ts:52. 카테고리·주제·타깃 독자 관련성의 규칙 기반 비교.
공개 연락처와 수신 동의를 구분합니다
프로필에 이메일이 적혀 있거나 협업 문의 주소가 공개돼 있다는 사실만으로 마케팅 수신 동의를 추정하지 않습니다. 어떤 목적의 연락을 언제 어떤 경로로 허용했는지 확인하고, 해당 주소와 연결되는 근거를 남겨야 합니다. 동의의 범위가 이번 제안과 맞는지 불분명하면 발송 대상으로 확정하지 않습니다.
현재 발송 코드에서는 수신 상태가 동의로 표시돼 있고, 동의 근거가 비어 있지 않으며, 대상의 이메일이 대기열에 등록한 정보와 일치하는지 확인합니다. 수신 거부 여부도 확인합니다. 이 검사는 필요한 정보의 존재와 상태를 검사하는 절차입니다. 작성한 근거가 실제 동의를 정확히 설명하는지까지 시스템이 대신 증명하는 것은 아닙니다.
운영 메모에는 확인 날짜, 허용한 목적, 근거를 찾을 수 있는 위치, 주소의 일치 여부를 남기는 방식을 권합니다. 이는 이 글에서 제안하는 확인 절차이며 모든 항목을 자동 수집한다는 제품 설명은 아닙니다. 연락을 원하지 않는다는 의사가 확인되면 목록을 새로 만들거나 주소 표기만 바꿔 우회하지 않습니다.
해석 조건 수신 동의는 Connecting의 발송 전제입니다. 이 글은 국가별 법령 요건이나 개별 상황의 법적 적합성을 판정하는 안내가 아닙니다.
출처
- 발송 직전 수신 조건 확인 · 2026-10-09저장소 connecting · src/lib/outreach-queue.ts:248, src/lib/outreach-queue.ts:256. 동의 상태, 비어 있지 않은 근거, 주소 일치와 수신 거부 등을 검사.
초안에는 제안의 이유와 조건을 함께 씁니다
초안은 상대가 선택하는 데 필요한 내용으로 구성합니다. 누가 보내는지, 어떤 관련성 때문에 연락하는지, 무엇을 제안하는지, 참여하면 어떤 일이 필요한지를 순서대로 씁니다. 제품 제공이나 대가가 있다면 그 조건을 숨기지 않습니다. 답장을 유도하려고 사실이 아닌 친분이나 이전 대화를 암시하지 않습니다.
개인화는 이름을 넣는 데서 끝나지 않습니다. 실제로 확인한 주제와 제안할 사용 장면이 연결돼야 합니다. 다만 같은 설명을 많은 대상에게 보내기 위해 확인하지 않은 경력이나 관심사를 자동으로 덧붙이지 않습니다. 초안이 잘 읽혀도 내용의 사실 여부와 제공 가능한 조건은 발신자가 최종 확인해야 합니다.
현재 메일 구성에는 이름 치환과 발신 주소, Connecting 전체 제안 메일의 수신 거부 링크 추가가 구현돼 있습니다. 발송 대기열에 등록하기 전에 미리보기에서 제목과 본문, 발신 계정, 대상을 확인합니다. 초안에 남은 대괄호나 예시 문구가 없는지도 봅니다. 아래 문장은 작성 예시이며 발송된 메일이 아닙니다.
예시
제안 초안 예시
안녕하세요, [브랜드]의 [담당자]입니다. 수신에 동의해 주신 [제안 범위]와 관련해 연락드립니다. [확인한 주제]에 맞는 [실제 체험 내용]을 제안드리고 싶습니다. 제공 내용은 [조건]이며, 참여하시면 [필요한 과정]을 안내드립니다. 후기를 공개하거나 광고에 활용하는 범위는 별도로 확인하겠습니다. 검토 후 참여 여부를 알려 주시면 상세 조건을 보내드리겠습니다.
출처
- 제안 메일 구성 구현 · 2026-10-09저장소 connecting · src/lib/outreach-domain.ts:47. 이름 치환, 발신 주소, 수신 거부 링크 추가.
Gmail 연결 허용과 상대의 수신 동의는 다릅니다
내 Gmail을 연결하는 것은 내가 그 계정으로 메일을 보낼 수 있도록 권한을 주는 절차입니다. 상대가 메일 수신에 동의하는 절차와 구분해야 합니다. 계정 연결을 완료했다고 수신 대상의 동의 확인이 생략되지는 않습니다. 연결한 계정이 의도한 발신 계정인지 최종 확인합니다.

현재 OAuth 코드가 요청하는 범위는 기본 로그인 정보인 openid, email과 Gmail의 gmail.send입니다. Google 문서에서 gmail.send는 메일 발송 권한으로 설명합니다. 이 권한 요청을 근거로 받은편지함 전체 읽기나 답장 자동 동기화, 이메일 주소 검증, 발신 평판 준비 기능까지 제공한다고 설명할 수는 없습니다.
Connecting은 준비한 제안을 본인의 Gmail로 한 사람씩 순차 처리하도록 구현돼 있습니다. 화면의 발송 예약은 최종 확인한 메일을 순차 대기열에 등록하는 동작입니다. 날짜를 지정하는 일정 기능이나 자동 후속 메일 시퀀스가 아닙니다. Gmail 연결 상태나 수신 가능 상태가 바뀔 수 있으므로 발송 직전에도 조건을 다시 검사합니다. 연결 상태와 실제 처리 결과는 따로 확인합니다.
출처
- Gmail 요청 권한 구현 · 2026-10-09저장소 connecting · src/lib/gmail-oauth.ts:7. openid, email, gmail.send 요청.
- Google Workspace · Gmail API 권한 범위
- 발송 직전 수신 조건 확인 · 2026-10-09저장소 connecting · src/lib/outreach-queue.ts:248, src/lib/outreach-queue.ts:256. 동의 상태, 비어 있지 않은 근거, 주소 일치와 수신 거부 등을 검사.
- 자료 사진 · Jakub Żerdzicki / Unsplash
- Unsplash License
대기열에 등록하기 전, 발송량과 수신 제한을 확인합니다
현재 한 번에 순차 발송 대기열에 등록할 수 있는 대상은 1~300명입니다. 발신 계정의 발송 목표는 50·100·200·300건 중 고르며, 자정 기준 날짜가 아니라 최근 24시간 동안 같은 Gmail을 연결한 모든 Connecting 계정의 발송 시도 횟수를 합산해 관리합니다. 성공 발송 수와는 다릅니다. 이는 Connecting 안의 설정입니다. 실제 Gmail 계정 조건이나 서비스 밖에서의 사용으로 가능한 발송량이 더 적을 수 있습니다.
수신자를 보호하기 위한 제품 기준도 따로 있습니다. 전체 브랜드 사이에는 3일 간격, 같은 브랜드에서는 30일 간격을 두며, 수신자당 최근 30일 최대 5건을 확인합니다. 대기열에 등록한 미처리 작업은 24시간 동안 유효합니다. 이 숫자는 현재 코드의 제품 정책이며 Gmail 공식 발송 한도나 법령의 공통 기준을 뜻하지 않습니다.
대기열 등록 전에는 대상, 발신 계정, 초안, 필요한 발송권을 함께 확인합니다. 등록했다고 모두 발송된 것은 아닙니다. 등록과 발송 직전의 검사에서 수신 동의나 제한에 걸리면 제외될 수 있습니다. 일시정지와 취소는 남은 처리를 제어하는 기능이며, 이미 처리되거나 Gmail이 접수한 메일을 회수하지는 않습니다.
- 최근 24시간 목표와 수신자별 간격을 구분합니다.
- 제외 대상과 실제 대기열 등록 수를 확인합니다.
- 일시정지나 취소 뒤에도 이미 접수된 메일은 별도로 봅니다.
출처
- 수신 제한 정책 구현 · 2026-10-09저장소 connecting · src/lib/recipient-policy.ts:1. 전체 3일, 같은 브랜드 30일, 최근 30일 최대 5건, 대기열 등록 유효기간 24시간.
- 대기열·결과 안내 구현 · 2026-10-09저장소 connecting · src/lib/outreach-queue.ts:41, :91, src/components/outreach-workspace.tsx:65, :74, :76, :82, :86, :89. 날짜 지정 없이 순차 대기열에 등록하며 실제 배포 상태는 별도.
Gmail 접수, 도착, 읽음은 같은 상태가 아닙니다
발송 결과의 이름을 정확히 읽는 것이 중요합니다. 현재 코드는 Gmail의 정상 응답과 메시지 식별값을 확인하면 접수로 기록합니다. 이 기록은 수신함 도착이나 읽음을 보장하지 않습니다. 처리 중인 상태를 완료로 보고하거나, 접수를 협업 성사로 집계하지 않습니다.
응답이 불명확한 경우에는 결과 불명으로 남기며 자동 재발송하지 않습니다. 같은 메일이 중복으로 갈 수 있기 때문입니다. 이때는 Gmail 보낸편지함에서 제목과 시각, 제공된 검색 식별값을 확인한 뒤 제품에서 접수 또는 미발송을 확인합니다. 결과를 확인하기 전에는 발송권을 확보한 상태로 두며 수신 제한도 유지합니다.
명확한 실패와 전송 전 취소는 발송권 반환 대상으로 처리됩니다. 화면에는 최근 100건을 보여 주며, 완료한 메일의 본문과 주소는 90일 뒤 삭제하도록 구현돼 있습니다. 결과를 정리할 때는 제품에 남는 처리 상태와 실제 후속 대화, 협업 진행을 구분합니다. 이 글에서 확인한 것은 그 구분을 위한 코드이며 고객 성과나 전달률이 아닙니다.
해석 조건 현재 흐름은 대상 목록과 동의 검토, 개인화 메일, 본인 Gmail과 내용 최종 확인, 순차 대기열 등록과 처리 결과 기록입니다. 이메일 찾기·검증·워밍업, 받은편지함 동기화, 읽음 추적 기능을 제공한다는 뜻은 아닙니다.
출처
- Gmail 응답 상태 처리 · 2026-10-09저장소 connecting · src/lib/outreach-domain.ts:36, src/lib/outreach-queue.ts:101, src/lib/outreach-queue.ts:337. 접수·명확한 실패·결과 불명 구분.
- 대기열·결과 안내 구현 · 2026-10-09저장소 connecting · src/lib/outreach-queue.ts:41, :91, src/components/outreach-workspace.tsx:65, :74, :76, :82, :86, :89. 날짜 지정 없이 순차 대기열에 등록하며 실제 배포 상태는 별도.
출처와 해석 조건
자료 확인일 . 통계의 표본과 해석 조건은 해당 절에 함께 적었습니다. 링크가 없는 항목은 Connecting 내부 구현 근거이며 설명만 표시합니다.
- 추천 기준 구현 · 2026-10-09 확인저장소 connecting · src/lib/recommendation-model.ts:52. 카테고리·주제·타깃 독자 관련성의 규칙 기반 비교.
- 발송 직전 수신 조건 확인 · 2026-10-09저장소 connecting · src/lib/outreach-queue.ts:248, src/lib/outreach-queue.ts:256. 동의 상태, 비어 있지 않은 근거, 주소 일치와 수신 거부 등을 검사.
- 제안 메일 구성 구현 · 2026-10-09저장소 connecting · src/lib/outreach-domain.ts:47. 이름 치환, 발신 주소, 수신 거부 링크 추가.
- Gmail 요청 권한 구현 · 2026-10-09저장소 connecting · src/lib/gmail-oauth.ts:7. openid, email, gmail.send 요청.
- Google Workspace · Gmail API 권한 범위gmail.send 권한의 공식 설명. 제품의 운영 승인이나 전달 성능을 증명하는 자료가 아님.
- 수신 제한 정책 구현 · 2026-10-09저장소 connecting · src/lib/recipient-policy.ts:1. 전체 3일, 같은 브랜드 30일, 최근 30일 최대 5건, 대기열 등록 유효기간 24시간.
- 대기열·결과 안내 구현 · 2026-10-09저장소 connecting · src/lib/outreach-queue.ts:41, :91, src/components/outreach-workspace.tsx:65, :74, :76, :82, :86, :89. 날짜 지정 없이 순차 대기열에 등록하며 실제 배포 상태는 별도.
- Gmail 응답 상태 처리 · 2026-10-09저장소 connecting · src/lib/outreach-domain.ts:36, src/lib/outreach-queue.ts:101, src/lib/outreach-queue.ts:337. 접수·명확한 실패·결과 불명 구분.
- 자료 사진 · Jakub Żerdzicki / Unsplash작업 공간 자료 사진. 제품 화면이나 고객 사진이 아님.
- Unsplash License사용한 자료 사진의 라이선스.
그림과 사진
도트 그림은 주제마다 따로 제작한 독립 SVG 개념 그림이며 실제 수치나 고객 수를 나타내지 않습니다. 실사는 설명용 사진으로 실제 고객이나 Connecting 팀을 촬영한 자료가 아닙니다.
- Jakub Żerdzicki · 햇빛이 비치는 책상 위 노트북Unsplash License (free), https://unsplash.com/license