E-Mail 관련 작업시 고려사항
E-Mail은 수신자마다 이용하는 툴 및 서비스 업체가 다릅니다. 이런 툴 혹은 서비스 업체마다의 E-Mail에 대한 코드 지원범위가 상이하기 때문에 관련 작업시 이 부분들에 대한 기본적인 이해가 필요합니다.
공통적인 E-Mail의 제약 사항
대부분의 E-Mail 서비스가 제약하고 있는 부분은 다음과 같습니다.
- 자바스크립트
- 외부(external) 스타일시트(CSS)
- css position 속성
- object 태그
메일 송신자가 악의적으로 E-Mail 서비스 업체 혹은 수신자에게 피해를 줄 수 있는 상기 사항들에 대해서는 사용할 수 없다고 보시면 됩니다. 간단하게 부연설명을 하겠습니다.
- 자바스크립트
- 가장 악의적으로 사용하기 쉬운 부분입니다. 무한 팝업 신공 등의 피해가 발생할 수 있습니다.
- 외부(external) 스타일시트(CSS)
- 외부 CSS를 지원한다는 것은 CSS 전체를 허용하게 되기 때문에 일부 CSS를 제약해야하는 정책을 위한 하나의 방법으로 보여집니다.
- css position 속성
- 흔히 레이어라고 불리우는 absolute 포지셔닝으로 서비스 업체의 사이트의 메뉴를 가려버리는 등의 장난질이 가능합니다.
- object 태그
- object 태그는 상당히 활용범위가 높은 만큼 위험한 태그가 될 수도 있습니다. activeX, object 영역내 타 문서의 로드, 플래시 등이 악용될 우려가 있습니다.
각 서비스 업체마다의 허용범위의 차이
그렇다면 위 사항들만 조심하면 되느냐? 불행하게도 앞에서 설명했듯이 각 메일 서비스 업체마다의 정책이 다르기 때문에 더 많은 부분들까지도 신경을 써줘야 합니다. 현재 외국에서는 이로 인한 혼란을 줄이고자 email standards project라는 이메일 표준정책을 위한 프로젝트도 운영되고 있을 정도로 이슈화가 되고 있기도 합니다.
그럼 이제 주요 포털들의 메일보기에서의 지원범위를 살펴볼까요?
테스트는 우리나라에서 가장 많이 쓰는 네이버, 다음, 네이트, 구글, 야후, 파란 여섯개로 해보겠습니다. 테스트 항목은 다음과 같습니다.
- head 태그 안의 internal, external CSS
- head 태그 안의 internal, external JS
- body 태그 안의 internal CSS(이것은 올바른 형식은 아닙니다만…)
- body 태그 안의 JS
- 플래시 오브젝트
inline css는 속성마다 허용되는 부분이 틀리기 때문에 배제하고 테스트를 하였습니다. 테스트 결과는 다음과 같습니다.
| 서비스 업체 | head CSS | head JS | body CSS | body JS | 플래시 |
|---|---|---|---|---|---|
| 네이버 | X | X | X | X | O |
| 다음 | O | X | O | X | X |
| 네이트 | X | X | O | X | O |
| 구글 | X | X | X | X | X |
| 야후 | internal만 지원 | X | O | X | X |
| 파란 | O | X | O | X | O |
이 테스트로 메일 작업에 ‘JS와 flash는 사용할 수 없다’ 와 ‘CSS는 inline 방식으로만 사용해야 한다’ 라는 결과를 얻을 수 있군요.
그렇다면 css 속성의 지원범위는 어떨까요? gmail,hotmail,yahoo 에 대한 CSS 지원현황을 깔끔하게 정리한 포스트를 참조해 주시기 바랍니다. 아래로 보시면 메일툴들에 대한 지원현황도 있네요.
지원여부가 천차만별이기 때문에 메일에서 이용할 수 있는 CSS도 한정적일 수 밖에 없습니다. 게다가 DTD 역시 서비스사 별로 틀리기 때문에 DTD에 따른 IE의 Box-Model 렌더링 차이 또한 고려해야 합니다. 덧붙여, outlook 2007은 td의 background 속성도 지원을 하지 않는다고 하네요.
몇개월 전, 이러한 문제들을 고려하며 작업한 메일링의 html 코드는 이런식이었습니다.
outlook 2007의 td의 background 속성 부분은 어쩔수 없는 문제일 것 같고, DTD에 따라서 table 혹은 td에 font CSS를 사용했을 때 자식 엘레멘트까지의 적용유무가 틀려지기 때문에 font 관련 속성은 전부 각 엘레멘트들마다 inline으로 지정해주어야 합니다. css는 최소한의 기본적인 속성들만 사용하고 디자인이 복잡해졌을 때는 통짜로 잘라서 이미지맵을 쓸 지언정 position과 float의 사용은 하지 않아야 합니다.
맺음말
이러한 현재 상황에서 메일링 작업시 최선의 대안은 기능이나 디자인이 복잡하지 않고 html 역시 table layout과 적절한 inline style을 사용하는 것입니다. 얼마전 타 회사와의 공동 프로젝트에서 이러한 부분들이 간과된채 제작된 메일링 디자인을 본 적이 있었습니다. 자기분야에 대한 스킬도 중요하지만 웹 종사자로서 웹 전반적인 부분들에 대한 이해 또한 중요하다고 생각합니다. 위 내용은 퍼블리셔 뿐만 아니라 기획자, 디자이너 등 모두가 알고 있어야 할 부분이 되겠습니다.
- Posted in WWW at 4월 2nd, 2008
- Tags : e mail, mail, 메일링
- 2개의 Comments
- Trackback : http://www.hoiheart.com/wp/archives/47/trackback/


