워드프레스 문의 양식 만들기: 메일이 도착하는지까지 확인하기

요약

워드프레스 문의 양식 만들기는 Fluent Forms, WPForms, Jetpack 폼 블록 같은 플러그인으로 시작합니다. 이름, 이메일, 메시지 필드로 짧은 양식을 만들고 블록으로 페이지에 넣으세요. 그다음 SMTP 서비스를 연결하고 SPF와 DKIM 레코드를 설정해 메일이 받은편지함에 도착하게 하며, 허니팟으로 스팸을 막으세요. 마지막으로 실제 도메인에서 다른 메일 계정으로 테스트하세요.

노트북이 놓인 나무 책상 위에 간단한 문의 양식 레이아웃이 떠 있고, 옆에 노트와 머그잔이 있는 사진

워드프레스 문의 양식 만들기는 생각보다 간단합니다. 양식 플러그인을 설치하고, 이름, 이메일, 메시지 필드로 짧은 양식을 만든 뒤, 플러그인이 제공하는 블록으로 페이지에 넣으면 됩니다. 여기까지는 10분이면 끝납니다. 문제는 그다음입니다. 많은 문의 양식이 조용히 실패하는데, 원인은 대부분 메일 전달 단계에 있습니다. 이 글은 바로 그 부분에 가장 많은 공을 들입니다.

워드프레스 코어에는 폼 블록이 없습니다. 블록 테마는 깔끔한 페이지, 그룹, 열(Columns), 버튼은 제공하지만 데이터를 수집하고 보내는 기능은 없습니다. 그래서 핵심 질문은 어떤 플러그인을 고르고, 메일 전달을 어떻게 연결할 것인가입니다.

워드프레스 문의 양식에 플러그인이 필요한가요?

대부분의 경우 필요합니다. HTML 폼과 자식 테마 안의 PHP 처리 코드로도 만들 수 있고, 그 방법을 설명하는 튜토리얼도 대체로 정확합니다. 하지만 그렇게 만들면 입력값 검증, 스팸 필터링, nonce 확인, 이스케이프, 데이터 저장, 오류 메시지까지 모두 직접 책임져야 합니다. 사실상 직접 관리해야 하는 작은 플러그인을 하나 더 만드는 셈입니다.

고객 사이트라면 유지보수 비용이 결정적입니다. 2024년에 작성한 처리 코드는 2028년에도 사이트에 그대로 남아 있을 가능성이 큽니다. 그때는 메일 발송이 실패했을 때 어떻게 처리하는지 기억하는 사람도 없겠죠. 잘 관리되는 플러그인은 보안 업데이트를 대신 받아 줍니다.

양식 자체가 제품의 일부가 아니라면 직접 만드는 방식은 피하세요. 플러그인을 개발하거나 아주 특별한 워크플로를 다룰 때만 가치가 있습니다.

어떤 워드프레스 양식 플러그인을 골라야 할까요?

거의 모든 경우를 다섯 가지 플러그인이 커버합니다. 템플릿 갤러리가 아니라, 제출 이후에 무슨 일이 일어나는지를 기준으로 고르세요.

블록 테마에서 일반적인 문의 페이지를 만든다면 Fluent Forms나 Jetpack 블록이면 충분합니다. CRM으로 데이터를 보내야 한다면 Gravity Forms나 WPForms Pro를 고르고 더 비교하지 않는 편이 낫습니다.

Jetpack 문서에는 폼 블록이 편집기 안에서 어떻게 동작하는지가 나와 있습니다. 다른 플러그인을 쓰더라도 푸터나 템플릿에 배치하는 방법은 참고할 만합니다.

양식은 어떻게 만드나요?

플러그인을 설치하고 활성화한 뒤, "Contact" 또는 "Simple" 템플릿으로 새 양식을 만드세요. 빌더를 열기 전에 필드를 종이에 먼저 적어 보는 것이 좋습니다. 필드가 하나 늘어날 때마다 끝까지 작성하는 방문자는 줄어듭니다.

연필로 그린 필드 네 개짜리 문의 양식 와이어프레임, 크림색 종이 위에 제출 버튼이 있음

대부분의 작은 사이트에는 필드 네 개면 충분합니다. 이름, 이메일, 메시지 입력란, 그리고 문의 유형을 나눌 필요가 있다면 주제 선택 드롭다운입니다. 실제로 전화를 다시 걸 계획이 없다면 전화번호 필드는 전환율을 떨어뜨리는 요소입니다.

설정 세 가지가 레이아웃보다 중요합니다. 첫째, 필수 항목은 이메일과 메시지만 지정하세요. 둘째, 플레이스홀더 대신 입력란 위에 분명한 라벨을 쓰세요. 플레이스홀더는 입력하는 순간 사라지고 대비 검사에서도 자주 걸립니다. 셋째, 전환 추적이 꼭 필요하지 않다면 감사 페이지로 보내는 대신 같은 페이지에 완료 메시지를 보여주세요.

편집기에서 페이지에 양식을 넣으려면?

"문의" 페이지를 만들고, 플러스 버튼으로 블록 삽입기를 연 뒤 플러그인 이름을 검색하세요. 주요 양식 플러그인은 모두 자체 블록을 등록합니다. 블록을 고르고 만든 양식을 선택한 뒤 게시하면 됩니다.

다른 위치에 넣을 수도 있습니다. 사이트 편집기에서 외모 > 편집기를 열고 푸터 같은 템플릿 파트나 페이지 템플릿을 고른 뒤 같은 블록을 넣으면 됩니다. 짧은 양식을 모든 페이지 하단에 띄우는 가장 간단한 방법이고, 단축코드도 필요 없습니다.

고객 작업에서 얻은 레이아웃 팁이 두 가지 있습니다. 양식은 최대 너비 640픽셀 정도의 그룹 안에 넣으세요. 1200픽셀짜리 열에 늘어진 양식은 읽기 어렵습니다. 그리고 양식 위에 직접 쓴 이메일 주소를 한 줄 적어 두세요. 양식을 쓰지 않으려는 방문자도 있는데, 주소를 알려 주는 데는 비용이 들지 않습니다.

문의 메일이 도착하지 않는 이유는?

워드프레스는 웹 서버의 기본 PHP 메일 함수로 메일을 보내고, 수신 메일 서버는 이 방식을 잘 신뢰하지 않기 때문입니다. wp_mail() 함수는 메시지를 서버가 제공하는 방식에 그대로 넘깁니다. 공유 호스팅에서는 대개 인증되지 않은 발신자가 되어 SPF와 DKIM 검사에 실패합니다. 그러면 Gmail이나 Outlook은 메시지를 스팸함에 넣거나 아예 거부합니다.

까다로운 점은 양식이 그래도 성공 메시지를 보여준다는 것입니다. 플러그인은 제 역할을 했고, 서버도 메시지를 받았습니다. 다만 받은편지함까지 도달하지 못했을 뿐입니다.

녹색 문 옆 황동 우편함 투입구로 흰 봉투가 빨려 들어가는 사진

해결책은 세 단계입니다.

  1. WP Mail SMTP, FluentSMTP, Post SMTP 같은 SMTP 플러그인을 설치하고 트랜잭션 메일 서비스에 연결하세요.

  2. 발신 주소는 무료 Gmail 주소가 아니라 내 도메인의 주소로 설정하세요. 예를 들면 hello@yourdomain.com 입니다.

  3. 메일 서비스가 알려 주는 SPF와 DKIM 레코드를 도메인 DNS에 추가하고, 모니터링용이라도 DMARC 레코드를 게시하세요.

어떤 서비스를 쓸까요? 문의 양식으로 하루에 몇 통 정도만 보낸다면 어떤 트랜잭션 메일 서비스든 대부분 충분합니다. Postmark는 이 용도에 맞게 만들어졌고, 트랜잭션 메일을 마케팅 메일과 분리된 인프라에서 보내 줍니다.

나중에 문의한 고객에게 뉴스레터도 보내고 싶다면 Brevo가 트랜잭션 발송과 캠페인을 한 계정에서 함께 처리합니다. 작은 사이트라면 무료 등급으로도 충분합니다.

SMTP 설정을 단계별로 보고 싶다면 Mailtrap 튜토리얼에 스크린샷과 함께 자세히 나와 있습니다.

실제 방문자를 불편하게 하지 않고 스팸을 막으려면?

공개된 양식은 며칠 안에 봇의 표적이 됩니다. 흔한 답은 CAPTCHA지만, 첫 번째 답으로는 대개 잘못된 선택입니다. 확인 단계를 하나 추가할 때마다 실제 제출도 함께 줄어들기 때문입니다.

방어는 다음 순서로 쌓고, 스팸이 멈추는 순간 멈추세요.

허니팟부터 시작하세요. 사람은 채우지 않고 봇은 항상 채우는 숨김 필드입니다. 대부분의 양식 플러그인에 기본으로 켜져 있습니다. 플러그인이 지원한다면 Akismet을 추가하세요. 스팸이 계속되면 시각적 이미지 퍼즐보다 먼저 Cloudflare Turnstile 같은 개인정보 친화적인 확인 방식을 쓰세요. 지속적인 공격을 받는 양식에만 클래식 reCAPTCHA 체크박스를 남겨 두세요.

가능하다면 서버 수준에서 요청 빈도도 제한하세요. 1분에 40번씩 제출하는 IP는 방문자가 아닙니다.

방문자의 개인정보를 받는다면 수집 목적을 알리는 동의 체크박스를 기본 해제 상태로 넣고, 개인정보처리방침 링크를 붙이세요. 플러그인이 제출 내용을 필요 이상으로 오래 보관하지 않도록 설정하는 것도 잊지 마세요. 많은 플러그인은 기본값으로 모든 제출 내용을 데이터베이스에 계속 쌓아 둡니다. 이 설정은 꼭 바꾸세요.

고객에게 넘기기 전에 양식을 어떻게 테스트하나요?

낯선 사람처럼 테스트하고, 스테이징이 아니라 실제 도메인에서 테스트하세요. 스테이징은 대개 메일 발송을 막기 때문에 거기서 통과해도 아무것도 증명하지 못합니다.

노트북 앞에서 저녁에 양식을 테스트하는 손과 휴대폰 사진

모바일 데이터로 연결된 휴대폰에서 Gmail 주소로 한 번, Outlook 주소로 또 한 번 제출해 보세요. 받는 쪽의 받은편지함과 스팸함을 모두 확인하세요. 메시지 헤더를 열어 spf=pass와 dkim=pass가 있는지 보세요. 모든 항목을 비워 제출해 보고, 일부러 잘못된 이메일을 넣어 제출해 보세요. 오류 메시지가 명확하고 스크린 리더로도 읽히는지 확인해야 합니다.

그다음에는 키보드만으로 양식을 채워 보세요. Tab 키로 제출 버튼에 닿지 못하거나 지금 어느 필드에 포커스가 있는지 보이지 않는다면, 테마의 포커스 스타일을 고쳐야 합니다.

참고로 기록을 남기세요. 보낸 메시지를 저장하는 플러그인이나 메일 서비스 기능을 켜 두면, 고객이 "문의가 안 왔다"고 말할 때 몇 시간이 아니라 1분 안에 확인할 수 있습니다.

양식 플러그인이 맞지 않는 경우는?

때로는 문의 양식이 방문자에게 필요한 것이 아닙니다. 쇼핑몰이라면 빈 메시지 상자보다 주문 데이터를 읽는 지원 위젯이 더 낫습니다. 리드를 모으는 랜딩 페이지라면 양식은 추적이 포함된 더 큰 흐름 안에 들어가야 합니다.

문의 내용을 CRM이나 스프레드시트로 모아야 한다면, 이메일을 손으로 옮기지 말고 바로 보내세요. Zapier 연결이 있는 양식 플러그인이라면 몇 번의 클릭으로 각 제출 내용을 구글 시트, 슬랙, 프로젝트 도구에 보낼 수 있습니다.

양식이 영업 파이프라인의 입구라면, 자체 임베드 양식을 제공하는 CRM이 플러그인 하나를 스택에서 빼 주고 연락 이력도 한곳에 모아 줍니다. HubSpot의 무료 양식이 대표적인 예입니다.

패턴은 어디서나 같습니다. 양식 만들기는 10분짜리 일이고, 메일 전달과 스팸 규칙, 그리고 후속 대응이 진짜 일입니다. 오늘 밤 여러분 사이트의 문의 양식으로 다른 계정에서 메시지를 보내 보세요. 도착하는 데 얼마나 걸리는지 확인해 보시면 됩니다.

자주 묻는 질문

플러그인 없이 워드프레스에 문의 양식을 추가할 수 있나요?
네, 자식 테마에 HTML 양식과 PHP 처리 코드를 넣으면 가능합니다. 다만 검증, 스팸 필터링, 저장, 이스케이프를 모두 직접 관리해야 하므로 고객 사이트에는 잘 관리되는 플러그인이 더 안전합니다.
무료 문의 양식 플러그인 중 가장 좋은 것은 무엇인가요?
일반적인 문의 페이지라면 Fluent Forms나 Jetpack 폼 블록이 가장 쉬운 무료 선택지입니다. Contact Form 7도 무료지만 시각적 빌더가 없습니다.
워드프레스 문의 메일이 스팸함으로 가는 이유는 무엇인가요?
워드프레스는 서버의 기본 PHP 메일 함수로 발송하는데, 보통 SPF와 DKIM 검사에 실패합니다. SMTP 플러그인과 트랜잭션 메일 서비스를 연결하고, 서비스가 알려 주는 DNS 레코드를 추가하세요.
워드프레스에 기본 제공되는 문의 양식 블록이 있나요?
없습니다. 워드프레스 코어에는 폼 블록이 없으므로 Jetpack, WPForms, Fluent Forms, Contact Form 7, Gravity Forms 같은 플러그인이 필요합니다.
워드프레스 문의 양식의 스팸은 어떻게 막나요?
먼저 허니팟 필드를 쓰고, 플러그인이 지원하면 Akismet을 추가하세요. 그다음 Cloudflare Turnstile처럼 개인정보 친화적인 확인 방식을 씁니다. 지속적인 공격을 받을 때만 보이는 CAPTCHA를 사용하세요.
블록 테마의 푸터에 문의 양식을 넣을 수 있나요?
네. 외모 > 편집기를 열고 푸터 템플릿 파트를 선택한 뒤, 원하는 위치에 양식 플러그인의 블록을 넣으면 됩니다.