Menu

HTML 이메일 링크: mailto 제목, 본문, 참조와 tel 링크

href="mailto:"로 새 이메일을 여는 링크를 만들고, 제목, 본문, 참조(cc), 숨은 참조(bcc)를 채우고, 값을 올바르게 인코딩하고, tel:과 sms:로 전화 걸기 링크를 만드는 법을 알아봐요.

이 페이지에는 실행 가능한 에디터가 있습니다 - 편집하고 실행하면 결과를 바로 볼 수 있습니다.

이메일 링크 만드는 법

링크의 href를 mailto:와 주소로 시작하세요. 클릭하면 독자의 메일 앱에서 그 주소로 보내는 새 메시지가 열려요.

미리보기는 다른 앱을 열지 않아요. 여기서 링크를 클릭하면 그 링크가 열 주소를 보여 줘요. 실제 페이지에서는 첫 번째 링크가 새 이메일을 열고, 두 번째 링크는 휴대폰에서 전화를 걸어요.

주소 자체를 링크 텍스트로 쓰세요. 메일 앱이 설정되지 않은 독자(브라우저에서 웹메일을 쓰는 데스크톱에서 흔해요)도 복사할 수 있어요. "이메일 보내기"라고만 쓰인 링크는 그런 독자를 막막하게 해요.

제목, 본문, cc, bcc

mailto 링크는 메시지의 더 많은 부분을 채울 수 있어요. URL 쿼리 문자열처럼 ? 뒤에 매개변수를 추가하고 &로 이으세요.

매개변수채우는 곳예
subject제목 줄?subject=Order%20question
body메시지 본문&body=Hi%20there
cc참조 수신자&cc=sales@example.com
bcc숨은 참조 수신자&bcc=log@example.com

수신자가 여러 명이면 주소 부분에 쉼표로 구분해서 넣어요. mailto:ana@example.com,bob@example.com처럼요.

값은 URL 인코딩해야 해요. 공백은 %20, 줄바꿈은 %0D%0A, &는 %26, ?는 %3F예요. 이 예제의 스크립트는 각 링크를 디코딩해서 메일 앱이 무엇을 받는지 보여 줘요.

제목 Order #123은 Order%20%23123으로 써야 해요. #를 그대로 두면 URL이 거기서 끝나서 본문이 사라져요. 공백에 +를 써서도 안 돼요. mailto 링크에서 +는 문자 그대로의 더하기 기호이고, 많은 메일 앱이 그대로 보여 줘요.

JavaScript로 mailto 링크 만들기

손으로 인코딩하면 실수하기 쉬워요. encodeURIComponent가 대신 해 줘요. 입력란에 입력하면 아래 링크가 바뀌어요.

encodeURIComponent는 &를 %26으로, 줄바꿈을 %0A로 바꾸고, replace는 줄바꿈을 이메일이 기대하는 %0D%0A 쌍으로 만들어요. 주소 부분은 입력한 그대로 두세요. 거기서는 @와 ,를 인코딩하지 않아도 돼요.

tel:과 sms:로 전화 링크 만들기

tel:은 클릭하면 전화를 거는 링크를 만들어요. href에는 국가 번호를 넣고 공백 없이 번호를 쓰세요. 화면에 보이는 텍스트는 원하는 형식으로 써도 돼요.

  • tel:+442079460958은 어느 나라에서든 동작해요. tel:02079460958 같은 국내 번호는 그 나라 안에서만 걸려요.
  • 하이픈은 구분자로 쓸 수 있지만(tel:+1-555-123-4567) 공백은 형식에 없으니 href에서는 빼세요.
  • sms:는 메시지 앱을 열어요. ?body=로 메시지를 넣는 건 많은 앱에서 되지만 지원이 제각각이라 믿지 마세요.
  • 데스크톱에서 tel:은 설치된 통화 앱(FaceTime이나 인터넷 전화 앱 등)이 있으면 열고, 없으면 아무 일도 하지 않아요.

iPhone의 Safari는 일반 텍스트의 전화번호를 알아서 링크로 바꿔요. 주문 번호 같은 게 그 때문에 깨진다면 <meta name="format-detection" content="telephone=no">로 끄세요.

스팸과 이메일 주소

mailto 링크의 주소는 페이지를 내려받는 어떤 봇이든 읽을 수 있어요. hello [at] example [dot] com처럼 쓰거나 JavaScript로 주소를 조립하는 요령은 단순한 수집기 일부는 막지만 링크를 쓰기도 더 어렵게 만들어요. HTML 폼에서 다루는 문의 폼을 쓰면 주소가 페이지에 아예 나오지 않아요. 대부분의 사이트에는 받은편지함의 좋은 스팸 필터가 더 간단한 답이에요.

<form action="mailto:...">는 피하세요. 독자의 메일 앱에 의존하고, 입력값을 읽기 어려운 URL 인코딩 형태로 보내며, 무언가 전송되었다는 확인도 받을 수 없어요.

자주 하는 실수

  • mailto:를 빼먹음. href="hello@example.com"은 주소 이름을 가진 페이지로 가는 상대 링크예요.
  • 제목이나 본문에 인코딩하지 않은 공백이나 #. 값을 %20, %23, 또는 encodeURIComponent로 인코딩하세요.
  • 공백에 +를 씀. 더하기 기호로 보여요.
  • & 대신 ?를 한 번 더 씀. 첫 번째 매개변수만 ? 뒤에 오고, 나머지는 &로 이어요.
  • 텍스트가 "이메일 보내기"뿐임. 웹메일 사용자는 복사할 게 없어요.
  • tel:에 국내 번호를 씀. 국가 번호를 넣으세요.

자주 묻는 질문

HTML에서 이메일 링크는 어떻게 만드나요?

href가 mailto:와 주소로 시작하는 링크를 쓰세요. <a href="mailto:hello@example.com">hello@example.com</a>처럼요. 클릭하면 독자의 기본 메일 앱에서 새 메시지가 열려요.

mailto 링크에 제목을 넣으려면 어떻게 하나요?

? 뒤에 쿼리 매개변수로 추가하세요. mailto:hello@example.com?subject=Order%20question처럼요. 공백은 %20으로 인코딩하고, 매개변수를 더 넣을 때는 ?subject=Hi&body=Hello처럼 &로 이으세요.

mailto 링크로 여러 사람에게 보내려면 어떻게 하나요?

주소를 쉼표로 구분하세요. mailto:ana@example.com,bob@example.com처럼요. 참조에는 cc=와 bcc= 매개변수를 쓰세요. mailto:ana@example.com?cc=bob@example.com&bcc=cy@example.com처럼요.

HTML에서 전화번호를 클릭할 수 있게 하려면 어떻게 하나요?

국제 형식 번호로 tel: 링크를 쓰세요. <a href="tel:+15551234567">+1 555 123 4567</a>처럼요. 휴대폰에서는 전화를 걸고, 데스크톱에서는 설치된 통화 앱이 있으면 그 앱을 열어요.

mailto 링크를 눌러도 왜 아무 일도 안 일어나나요?

이 링크는 주소를 기본 메일 앱에 넘겨주기만 해요. 독자에게 설정된 메일 앱이 없으면(웹메일을 쓰는 데스크톱에서 흔해요) 쓸모 있는 일이 일어나지 않아요. 복사할 수 있도록 주소를 링크 텍스트로 보여 주세요.

Coddy programming languages illustration

Coddy로 코딩 배우기

시작하기