Click or drag to resize

탭스 메일러와 연동해서 발송하기

탭스 메일러는 대량 메일 발송 솔루션으로 내부에 SMTP 수신 부를 갖고 있으므로 다양한 메일 발송 컴포넌트에서 전달된 메일을 실제 수신처로 릴레이할 수 있습니다. 일반 메일 서버가 아닌 탭스 메일러와 연동해서 메일을 발송할 경우 몇 가지 장점이 있습니다.

탭스 메일러는 많은 메일을 안정적으로 발송하기 위해 최적화된 시스템이므로 1회 메일 발송량이 1000통 이상이고 포털 웹메일로 발송하는 경우 적합합니다. 포털의 동시 연결 수 제한에 효과적으로 대처할 수 있으며 내부 메일 서버에 부하를 주지 않고 발송할 수 있습니다. 또한 발송 결과를 캠페인 단위로 묶어 로그를 분석해 발송 성공율, 메일 개봉율 등을 확인할 수 있습니다.

탭스 메일러 캠페인으로 메일 보내기

탭스 메일러로 전송하기 위해서는 몇 가지 설정을 달리해야 합니다. ServerName에는 메일러 서버가 설치된 곳의 호스트 이름 또는 IP를 지정하고 ServerPort에는 6700을 지정합니다. 6700번 포트는 탭스 메일러 SMTP 수신부의 기본 포트입니다. 아래 코드가 동작하는 웹 서버가 접속할 수 있도록 방화벽을 열고 탭스 메일러 설정에서 IP 허용을 추가해야 합니다.

탭스 메일러는 메일 발송을 캠페인 단위로 묶어서 발송하고 통계를 처리합니다. 따라서 메일 발송시 해당 메일이 어떠한 캠페인에 속하는지 명시할 필요가 있습니다. 아래 코드에서 AddHeader 메서드를 호출해 캠페인을 지정하는 것을 보여줍니다. X-TABS-Campaign 헤더에 캠페인 ID(GUID 형식)를 지정합니다. 63E3F849-267F-4B6B-BC6E-496295D789B3은 탭스 메일러의 기본 릴레이 캠페인 ID입니다.

ASP
Set Smtp = Server.CreateObject("TABSUpload4.Smtp")

Smtp.ServerName = "mailer4.tabslab.com"
Smtp.ServerPort = 6700
Smtp.AddHeader "X-TABS-Campaign", "63E3F849-267F-4B6B-BC6E-496295D789B3"
Smtp.FromAddress = "help@tabslab.com"
Smtp.AddToAddr "test@hotmail.com", "테스트"
Smtp.Subject = "제목입니다."
Smtp.Encoding = "base64"
Smtp.Charset = "euc-kr"
Smtp.BodyHtml = "<h1>텍스트 본문입니다.</h1>"

Set Result = Smtp.Send()
If Result.Type = SmtpErrorSuccess Then
    Response.Write "메일이 올바르게 전달되었습니다.<p>"
Else
    Response.Write "오류 종류:" & Result.Type & "<br>"
    Response.Write "오류 코드:" & Result.Code & "<br>"
    Response.Write "오류 설명:" & Result.Description
End If

이렇게 설정한 후 발송하면 탭스 메일러는 캠페인 ID에 따라 메일을 분류한 후 목적지로 발송하게 됩니다. 탭스 메일러 웹 관리도구로 로그온해서 기본 릴레이 캠페인을 조회하면 발송 로그, 성공 여부 등의 통계 자료를 확인할 수 있습니다.

예약 발송

탭스 메일러를 사용하면 특정 시각에 메일을 발송할 수 있는 예약 발송 기능을 사용할 수 있습니다. AddHeader 호출시 X-TABS-Schedule에 발송할 시각을 명시해서 전달하면 탭스 메일러는 해당 시각에 메일 발송을 시작합니다.

ASP
Set Smtp = Server.CreateObject("TABSUpload4.Smtp")

Smtp.ServerName = "mailer4.tabslab.com"
Smtp.ServerPort = 6700
Smtp.AddHeader "X-TABS-Campaign", "63E3F849-267F-4B6B-BC6E-496295D789B3"
Smtp.AddHeader "X-TABS-Schedule", "2011-7-10 13:00:00"
다량의 메일 보내기

탭스 메일러는 수십만통 이상의 메일을 안정적으로 발송할 수 있는 환경을 제공하므로 Smtp 컴포넌트를 사용해 원하는 만큼의 메일을 생성해 전달할 수 있습니다. 탭스 메일러에서 임의의 메일 캠페인(74A094CE-4336-4200-B596-E02CE20CF197)을 생성한 후 아래와 같이 코드를 작성할 수 있습니다.

X-TABS-Campaign 헤더에 생성한 캠페인 ID를 지정하고 데이터베이스로 부터 메일 주소를 읽어 반복적으로 메일을 발송합니다. 주의할 내용은 AddToAddr 메서드가 수신자를 누적시키므로 발송 후 ClearRecipients로 수신자 전체를 지워야 중복 발송이 되지 않습니다.

ASP
Set Smtp = Server.CreateObject("TABSUpload4.Smtp")

Smtp.ServerName = "mailer4.tabslab.com"
Smtp.ServerPort = 6700
Smtp.AddHeader "X-TABS-Campaign", "74A094CE-4336-4200-B596-E02CE20CF197"
Smtp.FromAddress = "help@tabslab.com"
Smtp.Encoding = "base64"
Smtp.Charset = "euc-kr"
Smtp.BodyHtml = "<h1>텍스트 본문입니다.</h1>"

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Your Connection String"
Set rs = Conn.Execute("SELECT email, name FROM MyCustomers"")
Do While Not rs.EOF    
    Smtp.AddToAddr rs("email""), rs("name")
    Smtp.Subject = rs("name") & "님 안녕하세요."
    Smtp.Send
    Smtp.ClearRecipients
    rs.MoveNext
Loop
rs.Close
Conn.Close

루프를 돌며 발송된 모든 메일은 동일한 캠페인 ID를 가지므로 탭스 메일러 관리 도구에서 보면 하나의 캠페인으로 묶여서 출력됩니다. 전체 발송 중 성공한 것과 실패한 것을 확인할 수 있으며, 특히 실패의 경우 상세한 실패 원인을 분석해 추후 발송시 발송 성공률을 향상시킬 수 있습니다.

Caution note Caution

많은 메일을 생성해서 서버로 전송할 경우 많은 시간이 소요되어 ASP 스크립트 타임아웃 오류가 발생할 수 있습니다. 많은 메일을 보내는 경우는 ASP 보다는 Visual Basic, Visual Basic Script에서 프로그래밍 하거나 ASP 스크립트 타임아웃 값을 매우 크게 지정하고 실행할 것을 권장합니다.