Jak wysłać wiadomość e-mail w Outlooku za pomocą VBA?

Zaktualizowano: sierpień 2021; Dotyczy Microsoft Outlook 365/2019/2016

Oto notatka, którą dostaliśmy od czytelnika.

Dziękujemy za bardzo przydatną pomoc w kodowaniu programu Outlook. Zastanawiam się, czy możesz udostępnić kod, który pomoże zautomatyzować wysyłanie wiadomości e-mail w programie Outlook? Wiem, że istnieje kilka sposobów wysyłania wiadomości cyklicznych, ale szczególnie interesuje mnie używanie VBA do tego zadania.

Dzięki za pytanie. Automatyczne wysyłanie e-maili wydaje się być jednym z najbardziej przydatnych i popularnych zadań, które można zautomatyzować za pomocą VBA. Czytaj dalej, aby uzyskać więcej informacji i prosty skrypt, aby zacząć tutaj.

Pisanie VBA do wysyłania wiadomości e-mail programu Outlook

W dość prostym przykładzie poniżej omówimy następujące kroki:

  1. Po pierwsze, do utworzenia nowego elementu wiadomości e-mail użyjemy modelu obiektów VBA Outlook.
  2. Następnie ustawimy ważność wiadomości, odbiorców (oddzielonych średnikami) oraz styl i treść tekstu głównego.
  3. Następnie wyświetlimy wiadomość w Twojej aplikacji Microsoft Outlook.
  4. Na koniec wyślemy go do odbiorców.

Oto prosty kod VBA do automatycznego tworzenia i wysyłania prostych wiadomości e-mail. Zwróć uwagę, że możesz łatwo ulepszyć ten skrypt, aby zawierał załączniki plików, zadania itp., ale zacznijmy od bardzo prostego skryptu.

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

Skrót do makr Outlook VBA

Możesz przyjrzeć się powiązaniu właśnie napisanego kodu VBA z przyciskiem polecenia w Outlooku. Umożliwi to łatwe uruchomienie go ze skrótu umieszczonego na Wstążce Outlooka.

Oto jak to zrobić:

  1. Najpierw otwórz Microsoft Outlook.
  2. Hit Plik, a następnie wybierz Opcje
  3. Teraz idź dalej i wybierz Dostosuj wstążkę.
  4. W sekcji Dostosuj wstążkę zobaczysz pole listy Wybierz polecenia z.
  5. Wybierz makra
  6. Następnie wybierz nowo utworzony kod VBA, w naszym przypadku nazwa powinna brzmieć SendMail.
  7. Następnie naciśnij Dodaj, a następnie OK. Opcjonalnie możesz chcieć przypisać ikonę do swojego makra.
  8. Twoje makro będzie dostępne na pasku narzędzi szybkiego dostępu w lewym górnym rogu aplikacji Outlook.

Możliwe problemy z ustawieniami makr VBA

Aby uruchomić makra, może być konieczne dostrojenie ustawień makr programu Outlook. Jeśli tak, oto jak to zrobić.

Bonus: Wyślij wiadomość e-mail z programu Outlook za pomocą programu PowerShell

W programie PowerShell możesz używać polecenia cmdlet Send-MailMessage do wysyłania wiadomości e-mail. Wymaga jednak uwierzytelnienia na serwerze poczty i nie obsługuje nowoczesnych metod uwierzytelniania, takich jak OAuth i Nowoczesne uwierzytelnianie Microsoft. Dlatego znacznie łatwiej jest wysłać e-mail, jeśli masz skonfigurowany profil Outlooka na swoim komputerze.

Oto przykład skryptu PowerShell, który odczytuje dane z pliku Excel i używa profilu Outlooka do wysyłania wiadomości e-mail do każdy użytkownik:

# otwórz plik Excel
$ExcelObj = Nowy obiekt -comobject Excel.Application
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx”)
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item(”Arkusz1”)
# Uzyskaj liczbę wypełnionych wierszy w pliku xlsx
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Przejdź przez wszystkie wiersze w kolumnie 1, zaczynając od drugiego wiersza (komórki te zawierają nazwy użytkowników i adresy e-mail).
for($i=2;$i -le $liczba wierszy;$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
# Wygeneruj treść wiadomości
$strSubj = " Stan Twojego konta w domenie woshub.com "
$strBody = „Szanowni Państwo” + $Pełna nazwa użytkownika
$strBody = $strBody + ” `r`n Twoje konto w domenie woshub.com znajduje się w " + $Status
$strBody = $strBody + "`r`n Data i godzina ostatniej zmiany hasła to: " +  $pwdchange
$strfile="C:\ps\" + $useremail + „.txt”
# Zakładamy, że Outlook jest uruchomiony, jeśli nie, należy go uruchomić za pomocą polecenia $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
# Załącz plik (jeśli to konieczne)
$email.Attachments.add($strfile)
#wyślij wiadomość e-mail
$email.Wyślij()

$ExcelWorkBook.close($true)

skrypt PowerShell do wysyłania wiadomości e-mail z profilu skonfigurowanego w programie Outlook

Ten skrypt PowerShell zakłada, że ​​na Twoim komputerze działa program Outlook. Skrypt generuje temat i treść wiadomości e-mail dla każdego adresu SMTP odbiorcy w pliku XLSX i dołącza plik. Następnie wysyła e-mail.


Jak utworzyć szablon wiadomości e-mail w Microsoft Outlook.com 365?

Jak utworzyć szablon wiadomości e-mail w Microsoft Outlook.com 365?

Jak utworzyć szablon wiadomości e-mail w Microsoft Outlook.com 365?

Jak zmodyfikować kolorowanie pocisków w programie Word?

Jak zmodyfikować kolorowanie pocisków w programie Word?

W tym poście dowiesz się, jak modyfikować kolor i rozmiar list wypunktowanych / punktów w Excelu, PowerPoint i Word 365 / 2016/ 2019.

Zatrzymaj i usuń zduplikowane wiadomości e-mail w Outlooku 2016 i 2019

Zatrzymaj i usuń zduplikowane wiadomości e-mail w Outlooku 2016 i 2019

Czy Twoja skrzynka pocztowa jest zaśmiecona zduplikowanymi wpisami e-mail? Dowiedz się, jak przestać otrzymywać i usuwać zbędne wiadomości w skrzynkach pocztowych programu Outlook 365 / 2019 / 2016 zarówno w systemie Mac, jak i Windows.

Jak dodać obrazy gif w treści lub podpisie wiadomości e-mail programu Outlook 2016 / 2019?

Jak dodać obrazy gif w treści lub podpisie wiadomości e-mail programu Outlook 2016 / 2019?

Dowiedz się, jak dodać / osadzić i wysłać obraz gif do wychodzącej poczty e-mail programu Outlook 2016 i 2019.

Jak odświeżyć pocztę w skrzynce odbiorczej programu Outlook, gdy nie jest ona automatycznie aktualizowana?

Jak odświeżyć pocztę w skrzynce odbiorczej programu Outlook, gdy nie jest ona automatycznie aktualizowana?

Skrzynka odbiorcza programu Outlook nie aktualizuje się automatycznie? Dowiedz się, jak automatycznie odświeżyć skrzynkę odbiorczą programu Outlook 365 / 2019 / 2016 / 2013.

Jak wysłać wiadomość e-mail w Outlooku za pomocą VBA?

Jak wysłać wiadomość e-mail w Outlooku za pomocą VBA?

Dowiedz się, jak pisać makra programu Outlook, aby zautomatyzować wysyłanie wiadomości e-mail.

Dlaczego program Outlook jest w trybie offline lub jest rozłączony i jak ponownie się połączyć?

Dlaczego program Outlook jest w trybie offline lub jest rozłączony i jak ponownie się połączyć?

Dowiedz się, jak diagnozować i rozwiązywać różne problemy z rozłączaniem klientów programu Microsoft Outlook w systemie Windows 10.

Formularze Outlook: Jak tworzyć formularze do wypełnienia w Microsoft Office 2016/2019?

Formularze Outlook: Jak tworzyć formularze do wypełnienia w Microsoft Office 2016/2019?

Dowiedz się, jak projektować i tworzyć niestandardowe formularze użytkownika programu Outlook.

Zatrzymaj wyskakujące powiadomienia kalendarza Outlook 365 / 2019 / 2016 o spotkaniach i spotkaniach

Zatrzymaj wyskakujące powiadomienia kalendarza Outlook 365 / 2019 / 2016 o spotkaniach i spotkaniach

Dowiedz się, jak wyłączyć przypomnienia i powiadomienia z kalendarzy Outlook 2016/2019, zarówno w systemie Windows, jak i MAC.

Jak przyspieszyć działanie programu Microsoft Outlook (wersje 2019/365/2016)?

Jak przyspieszyć działanie programu Microsoft Outlook (wersje 2019/365/2016)?

Dowiedz się, jak poprawić wydajność programu Outlook.