VBA를 사용하여 Outlook에서 이메일을 보내는 방법은 무엇입니까?

업데이트: 2021년 8월; Microsoft Outlook 365/2019/2016에 적용 가능

다음은 독자로부터 받은 메모입니다.

매우 유용한 Outlook 코딩 도움말에 감사드립니다. Outlook에서 전자 메일 보내기를 자동화하는 데 도움이 되는 코드를 공유할 수 있는지 궁금합니다. 되풀이 메시지를 보내는 방법에는 여러 가지가 있다는 것을 알고 있지만 특히 이 작업에 VBA를 사용하는 데 관심이 있습니다.

질문해 주셔서 감사합니다. 자동으로 이메일 보내기는 VBA를 사용하여 자동화할 수 있는 가장 유용하고 인기 있는 작업 중 하나인 것 같습니다. 여기에서 시작하는 데 필요한 자세한 내용과 간단한 스크립트를 읽으십시오.

Outlook 이메일을 보내기 위한 VBA 작성

아래의 다소 간단한 예에서 다음 단계를 다룹니다.

  1. 먼저 VBA Outlook 개체 모델을 사용하여 새 전자 메일 항목을 만듭니다.
  2. 그런 다음 메시지 중요도, 수신자(세미콜론으로 구분), 본문 스타일 및 내용을 설정합니다.
  3. 그런 다음 Microsoft Outlook 응용 프로그램에 메시지를 표시합니다.
  4. 마지막으로 수신자에게 전송합니다.

다음은 간단한 전자 메일을 자동으로 만들고 보내는 간단한 VBA 코드입니다. 첨부 파일, 작업 등을 포함하도록 이 스크립트를 쉽게 개선할 수 있지만 매우 기본적인 스크립트부터 시작하겠습니다.

Sub SendMail()
Dim MyEmail As MailItem
Set MyEmail = Application.CreateItem(olMailItem)

With MyEmail
.To = ""
.Importance = olImportanceHigh
.Subject = ""
.Body = ""
.BodyFormat = olFormatHTML
.Display
End With

'I purposely commented the next line, uncomment it by removing the "'" sign to send your email.
' MyEmail.Send
End Sub

Outlook VBA 매크로 바로 가기

방금 작성한 VBA 코드를 Outlook의 명령 단추와 연결하는 방법을 살펴볼 수 있습니다. 이렇게 하면 Outlook 리본에 있는 바로 가기에서 쉽게 시작할 수 있습니다.

방법은 다음과 같습니다.

  1. 먼저 Microsoft Outlook을 엽니다.
  2. 파일을 누른 다음 옵션을 선택하십시오.
  3. 이제 리본 사용자 정의를 선택하십시오.
  4. 리본 사용자 지정 섹션에서 목록 상자에서 명령 선택을 확인할 수 있습니다.
  5. 매크로 선택
  6. 그런 다음 새로 만든 VBA 코드를 선택합니다. 이 경우 이름은 SendMail이어야 합니다.
  7. 그런 다음 추가를 누른 다음 확인을 누르십시오. 선택적으로 매크로에 아이콘을 할당할 수 있습니다.
  8. 매크로는 Outlook 응용 프로그램의 왼쪽 상단에 있는 빠른 실행 도구 모음에서 사용할 수 있습니다.

VBA 매크로 설정에 가능한 문제

매크로를 실행하려면 Outlook 매크로 설정을 조정해야 할 수 있습니다. 그렇다면 방법은 다음과 같습니다.

보너스: PowerShell을 사용하여 Outlook에서 이메일 보내기

PowerShell에서는 Send-MailMessage cmdlet 을 사용하여 이메일을 보낼 수 있습니다. 그러나 메일 서버에 인증해야 하며 OAuth 및 Microsoft 최신 인증과 같은 최신 인증 방법을 지원하지 않습니다. 따라서 컴퓨터에 Outlook 프로필이 구성되어 있으면 이메일을 보내는 것이 훨씬 더 쉽습니다.

다음은 Excel 파일에서 데이터를 읽고 Outlook 프로필을 사용하여 이메일을 보내는 PowerShell 스크립트의 예입니다. 각 사용자:

# Excel 파일 열기
$ExcelObj = New-Object -comobject Excel.Application
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
# xlsx 파일에서 채워진 행 수를 가져옵니다
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# 두 번째 행부터 시작하여 열 1의 모든 행을 반복합니다(이 셀에는 사용자 이름과 이메일이 포함되어 있습니다).
for($i=2;$i -le $rowcount;$i++){
$useremail = $ExcelWorkSheet.Columns.Item(1).Rows.Item($i).Text
$FullUsername =  $ExcelWorkSheet.Columns.Item(2).Rows.Item($i).Text
$Status =  $ExcelWorkSheet.Columns.Item(4).Rows.Item($i).Text
$pwdchange = $ExcelWorkSheet.Columns.Item(3).Rows.Item($i).Text
# 메시지 본문 텍스트 생성
$strSubj = " woshub.com 도메인 "
의 계정 상태 $strBody = "친애하는" + $FullUsername
$strBody = $strBody + " `r`n woshub.com 도메인의 귀하의 계정은 " + $상태
$strBody = $strBody + "`r`n 마지막 비밀번호 변경 날짜와 시간은 : " +  $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# Outlook이 실행 중이라고 가정합니다. 그렇지 않으면 $outlook = new-object -comobject outlook.application
명령을 사용하여 시작해야 합니다. $outlook = [Runtime.InteropServices.Marshal]::GetActiveObject("Outlook.Application")
$email = $outlook.CreateItem(0)
$email.To = $useremail
$email.Subject = $strSubj
$email.Body =  $strBody
# 파일 첨부(필요한 경우)
$email.Attachments.add($strfile)
#이메일 메시지 보내기
$email.Send()
}
$ExcelWorkBook.close($true)

Outlook 구성 프로필에서 이메일을 보내는 powershell 스크립트

이 PowerShell 스크립트는 Outlook이 컴퓨터에서 실행되고 있다고 가정합니다. 스크립트는 XLSX 파일의 각 수신자 SMTP 주소에 대한 이메일 제목과 본문을 생성하고 파일을 첨부합니다. 그런 다음 이메일을 보냅니다.


Microsoft Outlook.com 365에서 이메일 템플릿을 만드는 방법은 무엇입니까?

Microsoft Outlook.com 365에서 이메일 템플릿을 만드는 방법은 무엇입니까?

Microsoft Outlook.com 365에서 이메일 템플릿을 만드는 방법은 무엇입니까?

Word에서 글머리 기호 색상을 수정하는 방법은 무엇입니까?

Word에서 글머리 기호 색상을 수정하는 방법은 무엇입니까?

이 게시물에서는 Excel, PowerPoint 및 Word 365/2016/2019에서 글머리 기호 목록/포인트 색상 및 크기를 수정하는 방법을 배웁니다.

Outlook 2016 및 2019에서 중복 전자 메일 메시지 중지 및 제거

Outlook 2016 및 2019에서 중복 전자 메일 메시지 중지 및 제거

사서함이 중복된 전자 메일 항목으로 복잡합니까?MAC 및 Windows 모두에서 Outlook 365/2019/2016 사서함에서 중복 메시지 수신을 중지하고 제거하는 방법에 대해 알아보세요.

Outlook 2016/2019 이메일 본문 또는 서명에 gif 이미지를 추가하는 방법은 무엇입니까?

Outlook 2016/2019 이메일 본문 또는 서명에 gif 이미지를 추가하는 방법은 무엇입니까?

Outlook 2016 및 2019 발신 이메일에 gif 이미지를 추가/포함하고 보내는 방법을 알아보세요.

자동으로 업데이트되지 않는 Outlook 받은 편지함 메일을 새로 고치는 방법은 무엇입니까?

자동으로 업데이트되지 않는 Outlook 받은 편지함 메일을 새로 고치는 방법은 무엇입니까?

Outlook 받은 편지함이 자동으로 업데이트되지 않습니까? Outlook 365/2019/2016/2013 받은 편지함을 자동으로 새로 고치는 방법을 알아보세요.

Outlook 365/2019/2016 회의 및 약속에 대한 일정 알림 팝업 중지

Outlook 365/2019/2016 회의 및 약속에 대한 일정 알림 팝업 중지

Windows 및 MAC 모두에서 Outlook 2016/2019 일정의 미리 알림 및 알림을 비활성화하는 방법을 알아봅니다.

VBA를 사용하여 Outlook에서 이메일을 보내는 방법은 무엇입니까?

VBA를 사용하여 Outlook에서 이메일을 보내는 방법은 무엇입니까?

이메일 전송을 자동화하기 위해 Outlook 매크로를 작성하는 방법을 배웁니다.

Outlook이 오프라인이거나 연결이 끊긴 이유와 다시 연결하는 방법은 무엇입니까?

Outlook이 오프라인이거나 연결이 끊긴 이유와 다시 연결하는 방법은 무엇입니까?

Windows 10에서 다양한 Microsoft Outlook 클라이언트 연결 끊김 문제를 진단하고 해결하는 방법을 알아보세요.

Outlook 양식: Microsoft Office 2016/2019에서 채울 수 있는 양식을 만드는 방법은 무엇입니까?

Outlook 양식: Microsoft Office 2016/2019에서 채울 수 있는 양식을 만드는 방법은 무엇입니까?

Outlook 사용자 지정 사용자 양식을 디자인하고 만드는 방법을 알아보세요.

Microsoft Outlook을 더 빠르게 실행하는 방법(버전 2019/365/2016)?

Microsoft Outlook을 더 빠르게 실행하는 방법(버전 2019/365/2016)?

Outlook 성능을 개선하는 방법을 알아보세요.