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

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

----------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

 

 

 

 

 

신고
스크랩
공유
회원등급 : 8레벨
포인트 : 549 EP
전체 6

  • 2024-09-26 13:09

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


  • 2025-01-14 12:01

    @알파고 님 와 대단하네요!! 좋은자료 감사합니다.

     


  • 2024-10-29 09:05

    @알파고 님 대단하십니다


  • 2024-07-27 06:17

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


  • 2024-11-14 18:34

    @알파고 님 유용하게 쓸 수 있겠네요 감사합니다!!


  • 2024-07-23 05:58

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

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


전체 165
번호 제목 작성자 작성일 추천 조회
알림
[📚진짜쓰는 실무엑셀] IT/오피스 '1위' 베스트셀러! 엑셀 공부, 이 교재로 마스터하세요! (313)
오빠두엑셀 | 2022.02.03 | 추천 573 | 조회 601694
오빠두엑셀 2022.02.03 573 601694
78094
[M365] 수식으로 고급필터 구현하기 첨부파일 (1)
마법의손 | 2025.04.11 | 추천 1 | 조회 91
마법의손 2025.04.11 1 91
78009
LOOKUP을 XLOOKUP 처럼 사용 (2019 이하 필독) 첨부파일 (1)
박정호 | 2025.04.06 | 추천 0 | 조회 108
박정호 2025.04.06 - 108
78002
[VBA] 괄호가 대응되게 문자열 잘라주는 함수
마법의손 | 2025.04.05 | 추천 0 | 조회 55
마법의손 2025.04.05 - 55
77792
엑셀 그림 삽입이 안될 때.. (그림 삽입 비활성화 해결) (1)
더블유에이 | 2025.03.24 | 추천 2 | 조회 375
더블유에이 2025.03.24 2 375
77667
언피벗 툴 업그레이드 버전입니다. 첨부파일 (2)
박정호 | 2025.03.17 | 추천 0 | 조회 111
박정호 2025.03.17 - 111
77635
머리글로 데이터 합치기 툴 첨부파일 (4)
박정호 | 2025.03.15 | 추천 1 | 조회 120
박정호 2025.03.15 1 120
77598
MERGE(자석처럼 자료 붙이기) 툴입니다. 첨부파일 (2)
박정호 | 2025.03.13 | 추천 0 | 조회 156
박정호 2025.03.13 - 156
77577
[VBA] 시트명들 가져오는 함수 첨부파일 (4)
마법의손 | 2025.03.12 | 추천 1 | 조회 117
마법의손 2025.03.12 1 117
77544
LOOKUP 함수 사용법(2019 이하 필독) 첨부파일 (6)
박정호 | 2025.03.11 | 추천 0 | 조회 194
박정호 2025.03.11 - 194
77543
[함수TIP] Date함수로 Eomonth함수 대체하기 (3)
마법의손 | 2025.03.11 | 추천 3 | 조회 77
마법의손 2025.03.11 3 77
77481
쉽게 쓸 수 있는 언피벗 툴 첨부파일 (2)
박정호 | 2025.03.08 | 추천 2 | 조회 119
박정호 2025.03.08 2 119
77468
월간단위 월주차 함수 첨부파일 (3)
팍셀 | 2025.03.07 | 추천 0 | 조회 141
팍셀 2025.03.07 - 141
77385
TEXTJOIN 을 SUMPRODUCT 공식으로 2차원 데이터 다루기 첨부파일
박정호 | 2025.03.04 | 추천 0 | 조회 101
박정호 2025.03.04 - 101
77355
TEXTJOIN 으로 2차원 데이터 다루기 첨부파일 (3)
박정호 | 2025.03.02 | 추천 1 | 조회 104
박정호 2025.03.02 1 104
77353
& 기호로 SUMPRODUCT 2차원 데이터 다루기 첨부파일 (2)
박정호 | 2025.03.02 | 추천 0 | 조회 82
박정호 2025.03.02 - 82
77351
단어 포함 여부 검색, 원하는 단어로 출력 첨부파일
박정호 | 2025.03.02 | 추천 1 | 조회 112
박정호 2025.03.02 1 112
77238
휴일이면 1 아니면 0이 나오는 함수 첨부파일 (4)
박정호 | 2025.02.24 | 추천 0 | 조회 148
박정호 2025.02.24 - 148
77072
SUMPRODUCT로 VLOOKUP 대체 (2차원 룩업 가능) 첨부파일 (1)
박정호 | 2025.02.16 | 추천 0 | 조회 259
박정호 2025.02.16 - 259
76915
SUMPRODUCT로 2차원 데이터 다루기[응용] 첨부파일 (6)
박정호 | 2025.02.09 | 추천 1 | 조회 230
박정호 2025.02.09 1 230
76913
SUMPRODUCT로 2차원 데이터 sumifs 처럼 다루기 첨부파일 (1)
박정호 | 2025.02.09 | 추천 0 | 조회 184
박정호 2025.02.09 - 184