아웃룩에 개빡쳐서 만든 ThunderBird로 수신자 별 대량 메일 발송 VBA 매크로 공유합니다.(업무자동화)

작성자
알파고
작성일
2024-07-22 23:01
조회
492

----------240725 2.1 1.1 버전으로 업데이트 되었습니다.

https://diycarebox.tistory.com/17

 

------------------------------

 

 

 

 

이 매크로를 만들게 된 계기는 최근 아웃룩에서 죽어도 구글계정이 로그인이 안되더라구요 ㅡㅡㅋ

그래서 당장 업무상 메일을 보내야하는데 일일이 노가다하면서 보내는것을 극혐하다보니 만들었습니다.

엑셀 VBA랑 연동하기 쉬운 이메일프로그램은 아웃룩말고 뭐가있지? → ThunderBird가 있고 → 수신자 별 개별 대량메일을 VBA로 가능한가? → 따로 누가 만들어서 올려놓은게 없다 → 그래서 내가 만들자 해서 만들었네요

썬더버드가 확실히 구글보다 가볍고 사용성이 편리해서 더 좋은거같습니다.

 

우선 이 매크로는 중점적으로 VBA를 못하는 누구나 조금만 신경쓰면 할수있도록 구현해봤습니다.

현재 급여명세서, 청구서, 거래명세서, 독촉장 등 각각 다른 수신자들에게 각각 다른 파일을  한번에 보내는 단순 노가다 성 업무를

많은 분들이 꾹 참고 하고계십니다. 그 분들이 잘 활용하셨으면 좋겠고 단순 노가다성 업무에서 해방되셨으면 합니다.

또한 매크로와 엑셀 고수분들은 제 코드와 수식들 구현해놓은것을 보시고

많은 아이디어 얻어서 새롭게 가공해서 잘 사용하시길 바랍니다.

저는 개인적으로 매 건 마다 일정한 패턴이 담긴 거래명세서를 보내는데 1번 버전의 파일을 활용하고

매달 30여명의 고객들에게 각기다른 거래명세서를 일괄 발송하는데 2번 버전의 파일을 사용하고있습니다.

각자 사용하시는 서식들과 제가 올려드린 파일의 수식과 VBA코드를 짜집기하시고 수식만 잘 다듬어서 자동화 시키는데 사용하시면 좋겠습니다.

 

그리고 기존 아웃룩 연동대비 단점은 첨부파일하는게 조금 설명을 보시고 하셔야합니다.

아웃룩은 첨부파일이 있으면 되고 없으면 말았는데 이거는 2개면 2개에 맞게 3개면 3개에 맞게 수식을 만지시든 코드를 만지셔야합니다.

물론 너무 겁낼것 없습니다 설명 다해놨고 초등학교만 나와도 다 할수있습니다.

 

이 VBA는 따로 설정할것도, 아웃룩같이 뭐 개체설정 이딴거 필요없습니다. 그만큼 단순합니다.

우선

가장 중요한것은 https://www.thunderbird.net/ko/ 여기에 들어가셔서 썬더버드 다운받으시고 로그인까지 완료하셔야합니다.

(대부분은 64비트를 설치하셔서 VBA코드 따로 건드실것도 없으시고 , 혹시나 (x86)버전 쓰시는분들은 VBA코드에서 실행파일경로에서

X86만 추가하시면됩니다.

1.아래 처럼 엑셀파일 다운받으시고 우측 속성에서 차단해제 해주시고(절대 바이러스나 이상한거 없어용)

 2. VBA 코드를 수정하실분들은 액셀에 개발모드 켜시구 

 

이러면 끝입니다.

 

간단하게 사용법을 설명드립니다.

사용법 (ThunderBird easy send mail 1 ver.1.00)

1. 본 1번 파일은 그냥 간단하게 수신자 한명에게 첨부파일 한개 보내는 프로그램입니다.

그대로 사용하셔도되고 아니면 코드만 복사해서 각자 사용하시는 거래명세서 옆 탭에 두시고 자동으로 제목,수신자 지정되게해서 쓰심됩니다.

2. 보시는 바와같이 받는사람 주소에 받는사람 주소 쓰시면되고

3. 참조자는 있으면 위와 같이 쓰시면되고, 제목도 쓰시고 본문도 쓰시고, 첨부파일도 경로에 맞게 입력하시면됩니다.

4. 보내기 버튼이 2개 있는데 수동발송 버튼은 메일이 외부편지함으로 들어갑니다 그래서 따로 썬더버드 키시고 한번 컨펌하시고

보내실수있는거고, 밑에 자동발송은 눌르자마자 바로 메일이 전송됩니다.

 

다음은

사용법 (ThunderBird easy send mail 2 ver.2.00)

  1. 2 버전은 각각 다른 수신자들에게 각각 다른 파일들을 한번에 보내는 기능이 있는 VBA 입니다.
  2. 제가 올려드린 파일은 첨부파일 2개까지 가능하게 올려두었고 파일안에 3개를 보내는 방법도 설명해놨습니다.
  3. 우선 2버전은 2개의 탭이 있습니다. 하나는 mail 탭과 하나는 메일리스트 탭이있습니다.
  4. 메일리스트 탭으로가셔서 좌측에 순번이 보이시는데 파일과 같이 13명의 각각 다른 수신자들에게 다른 파일을 보내시려면
  5. 그에 맞추어 주소 첨부파일 본문 제목 등 다 작성하시면 됩니다. 또한 파일경로도 수정하시면 됩니다.
  6. 저 순번은 중요합니다 왜냐면 1번부터 13번까지 돌아가면서 한개의 메일이 생성되면서 보내지게되는데 반드시 수신자들에게 순번을 매겨서 사용하셔야합니다. for i 문이 돌아가는 원리가 바로 저 순번에있습니다. 혹시라도 중간에 보내기 싫은 사람이 있으면 순번을 삭제하시고 그 다음 칸에 순서에 맞는 번호를 넣으시면 됩니다.
  7. 설명은 장황하지만 보시면 다 할수있습니다.

※ 파일경로에 홍길동은 임의로 해놓은거니 본인 PC에 맞게 고치심됩니다용

 

 

VBA가 잘 모르고 엑셀을 잘모르신다고 포기하지마시고 한번 꼭 업무에 적용하셔서 업무자동화의 편리함을 누리셨으면 좋겠습니다.

막상해보면 쉽습니다.

제가 개인적으로 쓰려고 만든 프로그램이다보니 업데이트는 생각없지만 필요하신 부분들 댓글로 남겨주시면 적극적으로 개선조치하겠습니다.

 

---240723 추가사항

Thunderbird send easy mail 2 버전(각각의 수신자들에게 각각다른 파일 및 메일 대량발송)에서 

파일 3개이상 무제한 첨부방법

'메일리스트'탭에서 첨부파일2에 파일경로,파일경로,파일경로 이런식으로 뒤에 콤마로 파일경로를 이어주면 무제한 첨부 가능합니다. 

예제 : 

C:\Users\홍길동\Desktop\test1.txt,C:\Users\홍길동\Desktop\test2.txt,C:\Users\홍길동\Desktop\test1.txt 

이런식으로 파일경로와 콤마로 이어주세요 ! 반드시 '첨부파일2'에 파일경로를 콤마로 이어주셔야합니다 !!

 

 

아래는 각 파일들의 코드들 올려 두겠습니다. 코드만 필요한분들은 코드만 가져가세요

-----------VER 1 수동발송-----------------------------------------------------------------------------------------------------------------------------------

Sub 단추1_Click()
CarryOn = MsgBox("이메일주소, 메일내용은 잘 확인하셨나요??", vbYesNo, "ThunderBird easy send mail ver1")
If CarryOn = vbYes Then

End If

sCmd = "C:\Program Files\Mozilla Thunderbird\thunderbird" 'ThunderBird 파일 실행경로입니다. (x86)이신분들은 경로 수정해주세요'
Email = Sheets("mail").Range("C6").Value '받는사람주소입니다.'
Subject = Sheets("mail").Range("c8").Value ' 제목입니다.'
Content = Sheets("mail").Range("c9").Value '본문 내용입니다.'
Attch = Sheets("mail").Range("c10").Value '첨부파일 경로입니다.'
Carboncopy = Sheets("mail").Range("c7").Value '참조자 주소입니다.'

sCmd = sCmd & " -compose " & "to=" & Email
sCmd = sCmd & ",cc=" & Carboncopy
sCmd = sCmd & ",subject=" & Subject
sCmd = sCmd & ",attachment=" & Attch
sCmd = sCmd & ",body=" & Content
'MsgBox sCmd

Call Shell(sCmd, vbNormalFocus)

 

End Sub

-----------VER 1 자동발송-----------------------------------------------------------------------------------------------------------------------------------

Sub 단추2_Click()
CarryOn = MsgBox("이메일주소, 메일내용은 잘 확인하셨나요??", vbYesNo, "ThunderBird easy send mail ver1")
If CarryOn = vbYes Then

End If

sCmd = "C:\Program Files\Mozilla Thunderbird\thunderbird" 'ThunderBird 파일 실행경로입니다. (x86)이신분들은 경로 수정해주세요'
Email = Sheets("mail").Range("C6").Value '받는사람주소입니다.'
Subject = Sheets("mail").Range("c8").Value ' 제목입니다.'
Content = Sheets("mail").Range("c9").Value '본문 내용입니다.'
Attch = Sheets("mail").Range("c10").Value '첨부파일 경로입니다.'
Carboncopy = Sheets("mail").Range("c7").Value '참조자 주소입니다.'

sCmd = sCmd & " -compose " & "to=" & Email
sCmd = sCmd & ",cc=" & Carboncopy
sCmd = sCmd & ",subject=" & Subject
sCmd = sCmd & ",attachment=" & Attch
sCmd = sCmd & ",body=" & Content
'MsgBox sCmd

Call Shell(sCmd, vbNormalFocus)

Application.Wait (Now + TimeValue("0:00:02"))

SendKeys "%+f", True
Application.Wait (Now + TimeValue("0:00:01"))

SendKeys "d", True 'd를 l로 바꾸면 나중에 보내기 가능합니다.'

End Sub

 

-----------VER 2 수동발송-----------------------------------------------------------------------------------------------------------------------------------

Sub 단추1_Click()

Dim i As Long

CarryOn = MsgBox("이메일주소, 메일내용은 잘 확인하셨나요??", vbYesNo, "ThunderBird easy send mail ver1")
If CarryOn = vbYes Then

End If

 

For i = Sheets("mail").Range("a4").Value To Sheets("mail").Range("a5").Value

Sheets("mail").Range("a6").Value = i

sCmd = "C:\Program Files\Mozilla Thunderbird\thunderbird" 'ThunderBird 파일 실행경로입니다. (x86)이신분들은 경로 수정해주세요'
Email = Sheets("mail").Range("C6").Value '받는사람주소입니다.'
Subject = Sheets("mail").Range("c8").Value ' 제목입니다.'
Content = Sheets("mail").Range("c9").Value '본문 내용입니다.'
Attch1 = Sheets("mail").Range("c10").Value '첨부파일 경로입니다.'
Attch2 = Sheets("mail").Range("c11").Value '첨부파일 경로입니다.'
'Attch3 = sheets("mail").range("c12").value / 본 코드는 attch3(첨부파일3을 만들시 예제 코드입니다. 맨앞,뒤에 어퍼스트로피와 중간에 슬래쉬 지우고 셀값위치(c12)를 확인하시고 쓰세요'
Carboncopy = Sheets("mail").Range("c7").Value '참조자 주소입니다.'

sCmd = sCmd & " -compose " & "to=" & Email
sCmd = sCmd & ",cc=" & Carboncopy
sCmd = sCmd & ",subject=" & Subject
sCmd = sCmd & ",attachment=" & "'" & Attch1 & "," & Attch2 & "'" ' 중요 아래 첨부파일3를 사용하실때는 이 코드를 지우세요'
'/ sCmd = sCmd & ",attachment=" & "'" & Attch1 & "," & Attch2 & "," & Attch3 &"'" / 본 코드는 attch3(첨부파일3)을 만들시 예제 코드입니다. 앞뒤 슬러시 안쪽에 있는 코드를 참고하세요'
sCmd = sCmd & ",body=" & Content
'MsgBox sCmd

Call Shell(sCmd, vbNormalFocus)

Application.Wait (Now + TimeValue("0:00:02"))

SendKeys "%+f", True
Application.Wait (Now + TimeValue("0:00:01"))

SendKeys "l", True 'd를 l로 바꾸면 나중에 보내기 가능합니다.'

Next i

MsgBox "모든 이메일은 ThunderBird 외부편지함에 들어갔습니다. 프로그램 실행하셔서 수동으로 전송을 눌러주세요", vbInformation, "ThunderBird easy send mail ver1"

End Sub

-----------VER 2 자동발송-----------------------------------------------------------------------------------------------------------------------------------

Sub 단추2_Click()
Dim i As Long

CarryOn = MsgBox("이메일주소, 메일내용은 잘 확인하셨나요??", vbYesNo, "ThunderBird easy send mail ver1")
If CarryOn = vbYes Then

End If

 

For i = Sheets("mail").Range("a4").Value To Sheets("mail").Range("a5").Value

Sheets("mail").Range("a6").Value = i

sCmd = "C:\Program Files\Mozilla Thunderbird\thunderbird" 'ThunderBird 파일 실행경로입니다. (x86)이신분들은 경로 수정해주세요'
Email = Sheets("mail").Range("C6").Value '받는사람주소입니다.'
Subject = Sheets("mail").Range("c8").Value ' 제목입니다.'
Content = Sheets("mail").Range("c9").Value '본문 내용입니다.'
Attch1 = Sheets("mail").Range("c10").Value '첨부파일 경로입니다.'
Attch2 = Sheets("mail").Range("c11").Value '첨부파일 경로입니다.'
'Attch3 = sheets("mail").range("c12").value / 본 코드는 attch3(첨부파일3을 만들시 예제 코드입니다. 맨앞,뒤에 어퍼스트로피와 중간에 슬래쉬 지우고 셀값위치(c12)를 확인하시고 쓰세요'
Carboncopy = Sheets("mail").Range("c7").Value '참조자 주소입니다.'

sCmd = sCmd & " -compose " & "to=" & Email
sCmd = sCmd & ",cc=" & Carboncopy
sCmd = sCmd & ",subject=" & Subject
sCmd = sCmd & ",attachment=" & "'" & Attch1 & "," & Attch2 & "'" ' 중요 아래 첨부파일3를 사용하실때는 이 코드를 지우세요'
'/ sCmd = sCmd & ",attachment=" & "'" & Attch1 & "," & Attch2 & "," & Attch3 &"'" / 본 코드는 attch3(첨부파일3)을 만들시 예제 코드입니다. 앞뒤 슬러시 안쪽에 있는 코드를 참고하세요'
sCmd = sCmd & ",body=" & Content
'MsgBox sCmd

Call Shell(sCmd, vbNormalFocus)

Application.Wait (Now + TimeValue("0:00:02"))

SendKeys "%+f", True
Application.Wait (Now + TimeValue("0:00:01"))

SendKeys "d", True 'd를 l로 바꾸면 나중에 보내기 가능합니다.'
Application.Wait (Now + TimeValue("0:00:01"))

Next i

MsgBox "모든 이메일 발송이 완료되었습니다.", vbInformation, "ThunderBird easy send mail ver1"

End Sub

 

 

 

 

 

신고
스크랩
공유
회원등급 : 7레벨
포인트 : 542 EP
전체 4

  • 2024-09-26 13:09

    @알파고 님 와 능력자시네요!


  • 2024-10-29 09:05

    @알파고 님 대단하십니다


  • 2024-07-27 06:17

    @알파고 님 좋은 정보 감사드립니다.


  • 2024-07-23 05:58

    @알파고 님 엄청 잘 만드셨네요!😊

    저도 로그인이 되지 않으면 써먹겠습니다. 감사합니다🙇‍♂️


전체 125
번호 제목 작성자 작성일 추천 조회
알림
[📚진짜쓰는 실무엑셀] 2024년 엑셀 공부, 이 책 한권으로 마스터하세요! (290)
오빠두엑셀 | 2022.02.03 | 추천 554 | 조회 844110
오빠두엑셀 2022.02.03 554 844110
74491
New 이름관리 엑셀 업그레이드 버전 입니다. 첨부파일 (2)
박정호 | 2024.10.28 | 추천 0 | 조회 43
박정호 2024.10.28 - 43
74354
월드컵 랭킹 계산(ELO 점수 계산) 첨부파일 (4)
박정호 | 2024.10.22 | 추천 0 | 조회 53
박정호 2024.10.22 - 53
74269
엑셀2021이하에서 CHOOSECOLS, CHOOSEROWS 처럼 동작시키기 첨부파일 (13)
마법의손 | 2024.10.18 | 추천 2 | 조회 107
마법의손 2024.10.18 2 107
74204
이름관리 엑셀입니다.(모듈) 첨부파일 (6)
박정호 | 2024.10.15 | 추천 0 | 조회 133
박정호 2024.10.15 - 133
74028
로또번호2(반자동 기능 업데이트) 첨부파일 (4)
박정호 | 2024.10.05 | 추천 1 | 조회 130
박정호 2024.10.05 1 130
74012
매장 근태관리시트 공유 첨부파일 (3)
체리로그 | 2024.10.03 | 추천 1 | 조회 123
체리로그 2024.10.03 1 123
73964
[파워쿼리] 여러열 열분할하기 첨부파일 (4)
마법의손 | 2024.10.01 | 추천 1 | 조회 103
마법의손 2024.10.01 1 103
73915
M365 GroupBy, PivotBy 함수 공식 배포 (6)
원조백수 | 2024.09.27 | 추천 2 | 조회 138
원조백수 2024.09.27 2 138
73485
m365 신규함수(베타) : TRIMRANGE (7)
더블유에이 | 2024.09.04 | 추천 1 | 조회 205
더블유에이 2024.09.04 1 205
73454
고등학교 선택과목 편성 방법 (4)
toug**** | 2024.09.03 | 추천 0 | 조회 119
toug**** 2024.09.03 - 119
73241
로또 번호 엑셀입니다. 첨부파일 (9)
박정호 | 2024.08.24 | 추천 1 | 조회 275
박정호 2024.08.24 1 275
73096
그룹별 데이터 나누기 [가로정렬] 첨부파일 (7)
마법의손 | 2024.08.20 | 추천 2 | 조회 196
마법의손 2024.08.20 2 196
73093
ppt에 둥근 표 삽입하기 (4)
강민준🤗 | 2024.08.20 | 추천 1 | 조회 172
강민준🤗 2024.08.20 1 172
73029
XLOOKUP, XMATCH 함수에 새로운 Match_mode로 RegEx 추가 (2)
원조백수 | 2024.08.16 | 추천 3 | 조회 204
원조백수 2024.08.16 3 204
72413
아웃룩에 개빡쳐서 만든 ThunderBird로 수신자 별 대량 메일 발송 VBA 매크로 공유합니다.(업무자동화) 첨부파일 (4)
알파고 | 2024.07.22 | 추천 1 | 조회 492
알파고 2024.07.22 1 492
72045
조합짜주는 엑셀(20명까지) 출력은 1만항까지 첨부파일 (13)
박정호 | 2024.07.10 | 추천 1 | 조회 362
박정호 2024.07.10 1 362
71965
서양달력 업데이트 입니다. 첨부파일 (14)
박정호 | 2024.07.07 | 추천 0 | 조회 221
박정호 2024.07.07 - 221
71902
Excel에서 ImportRange, ImportHTML 함수 사용하기 (4)
원조백수 | 2024.07.05 | 추천 0 | 조회 165
원조백수 2024.07.05 - 165
71838
Microsoft 365 신규 번역 함수 (8)
원조백수 | 2024.07.02 | 추천 2 | 조회 381
원조백수 2024.07.02 2 381
71804
음력->양력->서양달력 변환 첨부파일 (2)
박정호 | 2024.07.01 | 추천 0 | 조회 230
박정호 2024.07.01 - 230