← 노드 한 장 전체#52 · Gmail

Gmail

테스트 메일, 정말 보냈는지 확인까지

이 글은 이런 분께Gmail 노드로 본인 테스트 메일을 보내고 실제 발송 메타와 제목·본문까지 확인하고 싶은 분
Gmail 영상 표지

1분 영상은 @workflow.hanjang 에 순서대로 공개돼요

JSON 받기

테스트 메일, 정말 보냈는지 확인까지.

노드 한 장 #52 · Gmail

먼저 결과부터

지정된 Gmail 계정의 profile을 먼저 확인하고 native Gmail Send로 본인 테스트 계정에 직접 작성한 고지 1통만 발송했어요. 실제 Send 결과는 1 item, SENT·INBOX·UNREAD 라벨이었고 그 메시지 ID만 Get한 뒤 제목·본문·수신자·발신자 일치를 별도 Code로 확인했어요. 주소와 식별자는 가렸고 일반 메일함·고객 메일은 읽지 않았어요. profile #74845, 실제 Send/Get 검증 #74848. 재발송 없음.
우리가 실제로 돌린 기록 · 실행 #74845·#74848 · 2026-10-30

따라 하기

실제로 실행한 워크플로우를 바탕으로 정리했어요. 계정·식별자는 공개용 값으로 치환했고, 그 밖의 차이는 아래 주의사항에 표시했어요. n8n 캔버스에서 +를 눌러 노드를 순서대로 추가하고 같은 값을 넣으면 돼요. 빨간 제목이 이번 편의 주인공 노드예요. 표 왼쪽은 n8n 편집기에 보이는 칸 이름, 오른쪽은 다운로드 JSON의 설정값이에요. 직접 입력하기 번거로우면 JSON을 받아 ⋯ → Import from File로 가져오세요.

Step 1. Manual Trigger 노드 추가이름: Run manually

설정 없이 그대로 추가해요.

Step 2. HTTP Request 노드 추가이름: Verify Gmail profile only

URLhttps://gmail.googleapis.com/gmail/v1/users/me/profile
AuthenticationPredefined Credential Type
Credential TypegmailOAuth2

Step 3. Code 노드 추가이름: Guard own identity

JavaScript
const expected='YOUR_TEST_EMAIL'; if($input.first().json.emailAddress!==expected)throw new Error('STOP: Gmail identity mismatch'); return [{json:{identity_verified:true,scope:'own test account only'}}];

Step 4. Gmail 노드 추가이름: Gmail Send exactly one

ResourceMessage
OperationSend
ToYOUR_TEST_EMAIL
Subject[노드 한 장] Gmail 테스트
Email TypeText
Message
이 메일은 n8n Gmail 노드 실습용 테스트입니다.
본인 계정으로 한 번만 발송하며 실제 고객정보는 포함하지 않았습니다.
Options › Append n8n Attribution꺼짐

Step 5. Gmail 노드 추가이름: Gmail Get exact sent ID

ResourceMessage
OperationGet
Message ID{{ $json.id }}
Simplify꺼짐
Options › Download Attachments꺼짐

Step 6. Code 노드 추가이름: Verify only own test content

JavaScript
const j=$input.first().json;const expectedSubject="[노드 한 장] Gmail 테스트";const expectedBody="이 메일은 n8n Gmail 노드 실습용 테스트입니다.\n본인 계정으로 한 번만 발송하며 실제 고객정보는 포함하지 않았습니다.";const send=$('Gmail Send exactly one').first().json;const to=(j.to?.value||[]).map(x=>x.address);const from=(j.from?.value||[]).map(x=>x.address);const text=String(j.text||'').trim();const sent=(send.labelIds||[]).includes('SENT');return [{json:{sample:true,identity_verified:true,native_send_items:1,sent_label:sent,subject_matches:j.subject===expectedSubject,body_matches:text===expectedBody,recipient_is_own:to.includes('YOUR_TEST_EMAIL'),sender_is_own:from.includes('YOUR_TEST_EMAIL'),subject:j.subject,body:text,note:'직접 작성한 본인용 테스트 메일 · 해당 message ID만 조회'}}];

가져와서 쓸 때 확인할 것

노드의 모든 옵션은 n8n 공식 문서에서 볼 수 있어요.