※ 아래 Daily Tip은 염기웅님이 제공해주신 내용입니다이제 그룹메일 보내기의 마지막 시간입니다. 1편에서는 메일 보내는 기능에 대한 개념을 파악해
보았고, 2편에서는 메일 보내는 함수에 대한 내용과 함께 여러 사람에게 같은 내용의 메일을
보내는 것을 알아 보았습니다. 오늘은 여러 사람에게 조금씩 다른 내용을
보내는 기능에 대해서 알아보도록 하겠습니다.
예제파일을 살펴보면 fSendMail2폼이 있습니다. 이것이 오늘 연습할
개체입니다
이 폼에서 메일의 형식과 제목 그리고 내용을 입력한 후 보내기 버튼을
클릭하면 이메일 발송 대상자 목록에 있는 모든 사람들에게 조금씩 다른 내용을 전송하게
됩니다. 예를 들어 다음과 같은 이메일을 전 직원들에게 전송해야 한다고 가정해 봅시다.
안녕하세요? [직원명] [직위] 님!
오늘 하루 행복하게 보내시기 바랍니다.
오피스튜터 일동 |
이 때, 데이터베이스에 등록된 사람 이름을 바탕으로
각각의 이름과 직위를 넣어서 이메일을 보내면 친근감이 더해지겠지요? 오피스튜터에서 발행하는 데일리
팁도 정확히 이러한 방식이라고 하기는 힘들지만, 비슷한 개념으로 이메일을 발송합니다.
다음 그림과 같이 입력하고 보내기 버튼을 클릭해 보기 바랍니다.
어떻습니까? 메일이 실제로 발송되지는 않고 메일 작성 창이 여러 개 만들어 졌지요? 이것은 제가
실제로 발송하지 못하게 막아 놓았기 때문입니다.
다음 그림과 같이 여러 개의 이메일 창이 보일 것입니다
비슷한 내용이지만 각 사람의 이름과 직책을 명시해 놓았지요? 이러한 스타일로 이메일을 전송해야
하는 경우가 종종 있을 것이라고 생각되어 소개해 드립니다.
이 폼의 보내기 버튼을 클릭하면 이러한
기능이 작동됩니다. 이 폼의 보내기 버튼에 대한 이벤트 프로시저는 다음과 같습니다.
Private
Sub cmdSend_Click()
'목록상자의 모든
사람들에 대하여 이메일 발송
Dim lngListQty As Long '목록상자의 사람
명수
Dim lngRpt As Long 'For ~ Next 반복 구문에 사용할 반복 변수
Dim strReceiver As String '받을 사람
이메일 주소
Dim strEmployeeName As String '받을 사람 이름
Dim strEmployeeTitle As String '받을 사람 직위
Dim strTmp As String '메세지 본문
lngListQty =
lstMailing.ListCount '목록상자의 레코드 갯수 지정
For lngRpt = 0 To lngListQty - 1
'목록상자의 첫번째 레코드부터 마지막 레코드까지...
strReceiver = lstMailing.Column(0, lngRpt)
strEmployeeName = lstMailing.Column(1, lngRpt)
strEmployeeTitle = lstMailing.Column(2, lngRpt)
strTmp = Replace(txtBody, "$직원명$",
strEmployeeName)
strTmp = Replace(strTmp, "$직위$", strEmployeeTitle)
sbSendMail strReceiver, txtSubject, strTmp,
cboBodyFormat '이메일 보내기
Next
End Sub |
이 프로시저는 크게 복잡함이 없습니다. 여러분이 입력한 메세지 본문 중에 $직원명$
이 있다면 목록상자의 직원명의 필드값으로 대체해 주고, 메시지 본문 중에 $직위$
가 있다면 목록상자의 직위 필드값으로 대체해 주는 기능을 수행합니다. 그러면 메시지의
본문이 개인별로 달라집니다. 그러면 sbSendMail 프로시저를 이용해서 메일을
발송하게 되는 것이지요.
오늘은 하나의 이메일 내용에 코드값을 부여하여 여러
사람에게 각각 다른 내용의 이메일을 발송하는 방식에 대한 스타일에 대하여 알아보았습니다. 여러분의
업무에 많이 활용하시기를 바랍니다.
|