Click or drag to resize

파일을 첨부해 보내기

데이터베이스를 이용한 메일 발송에서는 첨부 파일을 최대 두 개까지 추가할 수 있습니다. 그 이상을 필요로할 경우는 zip 파일등으로 압축해서 첨부해야 합니다. 첨부 파일 이름과 첨부 파일의 바이너리 데이터를 테이블에 추가하면 탭스 메일러는 첨부 파일이 포함된 메일로 인코딩해서 메일을 발송합니다.

파일 첨부 메일 발송 예제

파일에서 바이너리 데이터 버퍼을 얻기 위해 Stream 오브젝트를 사용합니다. 스트림 형식에 adTypeBinary를 지정한 후 LoadFromFile, Read를 호출하면 첨부 파일 내용이 저장된 바이너리 데이터 버퍼을 얻을 수 있습니다.

준비된 바이너리 데이터 버퍼를 sm_attach1_data 또는 sm_attach2_data에 지정하고, sm_attach1_name 또는 sm_attach2_name에 파일 이름을 지정해서 레코드를 삽입합니다.

ASP에서 발송할 경우 CreateObject() 대신 Server.CreateObject()를 사용해야 합니다.

대량의 메일을 보내기 위해서는 데이터베이스 연결과 테이블을 열어 놓은 상태에서 rs.AddNew와 rs.Update를 반복적으로 호출해서 레코드를 추가할 수 있습니다.

Dim conn, connStr, rs, stream
Dim fromName, fromAddr, toName, toAddr, subject, htmlbody, charset, attachFile, attachData

'메시지 구성 데이터를 지정합니다.
fromName = "기술지원"
fromAddr = "help@tabslab.com"
toName = "홍길동"
toAddr = "hong@poporo.co.kr"
subject = "테스트 메일입니다."
htmlbody = "<html><body><h1>테스트 메일입니다.</h1></body></html>"
charset = "utf-8"
attachFile = "tulip.jpg"

'Stream 오브젝트를 사용해 파일을 읽어 바이너리 버퍼를 구성합니다.
Set stream = CreateObject("ADODB.Stream")
stream.Type = adTypeBinary
stream.Open
stream.LoadFromFile "c:\files\" & attachFile
attachData = stream.Read

'데이터베이스에 연결합니다.
connStr = "PROVIDER=SQLOLEDB;Data Source=(local)\TabsMailer4;Initial Catalog=TabsMailer4;User ID=sa;Password=!q7hfnl3sh62@;"
Set conn = CreateObject("ADODB.Connection")
conn.Open connStr

'테이블을 오픈해 새로운 레코드를 추가합니다.
Set rs = CreateObject("ADODB.Recordset")
rs.Open "SendMessage", conn, adOpenDynamic, adLockPessimistic, adCmdTable
rs.AddNew
'메일 발송 정보를 지정합니다.
rs.Fields("sm_fromname").Value = fromName
rs.Fields("sm_fromaddr").Value = fromAddr
rs.Fields("sm_toname").Value = toName
rs.Fields("sm_toaddr").Value = toAddr
rs.Fields("sm_subject").Value = subject
rs.Fields("sm_htmlbody").Value = htmlbody
rs.Fields("sm_charset").Value = charset
rs.Fields("sm_attach1_name").Value = attachFile
rs.Fields("sm_attach1_data").Value = attachData
rs.Update

rs.Close
conn.Close