Moje doświadczenia z Excelem, Accesem i programowaniem w VBA
Blog > Komentarze do wpisu

Wysyłanie maila kodem VBA

Z poziomu kodu VBA (zarówno w Excelu jak i Accessie) można też wysyłać maile. Jak to zrobić z wykorzystaniem programu Microsoft Outlook?
Przykładowe uproszczone rozwiązanie wygląda tak:

Public Sub WyslijMail()
Dim Poczta As Object
Dim MojMail As Object

Set Poczta = CreateObject("outlook.application")
Set MojMail = Poczta.createitem(0)
    With MojMail
        .To = "AdresDo@domena.pl"
        .CC = "AdresDW@DOMENA.PL"
        .Subject = "Temat maila"
        .ReadReceiptRequested = False
        .OriginatorDeliveryReportRequested = False
        .body = "Treść maila"
        .Attachments.Add "c:\Folder\MojZalacznik.xlsx"
        .Display
        '.send
    End With
End Sub


Jak widać - tworzymy obiekt Outlook.Application oraz w jego ramach - nową pozycję czyli mail (tu Obiekt MojMail).
Potem wystarczy tylko ustawić poszczególne właściwości maila. W przykładzie są one wpisane na sztywno, ale oczywiście można odwołać się tu np. do komórek arkusza z zapisanymi wartościami.
Makro może być zaimplementowane także w kodzie VBA w Accessie.

Najważniejsze właściwości to:

To - adresat właściwości. Jeżeli adresatów jest kilku - ich adresy mailowe powinny być oddzielone średnikami;
CC - adresy do wiadomości
UCC - ukryte adresy do wiadomości
Subject - temat maila
Body - temat maila
ReadReceiptRequested  - żądanie potwierdzenia odczytu maila (ustawione na False lub True)
OriginatorDeliveryReportRequested  - żądanie potwierdzenia dostarczenia maila (ustawione na False lub True)
Attachments.Add - dodanie załącznika do maila





Jeżeli mail ma być wysłany automatycznie, bez wyświetlania go na ekranie - stosujemy metodę Send. Chcąc obejrzeć tak stworzoną wiadomość mailową (a wysłać ręcznie) musimy zastosować metodę Display.

 

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


 

wtorek, 06 października 2015, marzatela













Polecane wpisy

TrackBack
TrackBack URL wpisu:
Komentarze
2015/10/14 09:30:28
kurcze, dzieki :) teraz oprócz wygenerowania raportu można wysłać od razu mailem :)
-
Gość: Marko, *.zdnet.com.pl
2017/01/30 20:51:20
A jak dodać linijke jak outlook nie jest uruchominony?
-
Gość: bradon, *.play-internet.pl
2017/02/09 14:03:11
Witam, żeby wysłać z automatu maila muszę mieć włączonego outlooka, bo inaczej mi wywala program na komendzie ".send". Czy da się wysyłać bez włączania aplikacji outlook?
-
2017/02/12 10:24:29
@Marko
Nawet jeżeli Outlook nie jest uruchomiony - to i tak powinno to trafić do skrzynki nadawczej, choć wysłanie rozpocznie się faktycznie po uruchomieniu Outlooka.
-
2017/02/12 10:25:19
@Brandon
Jaką marsz wersję MO?
-
2017/05/31 13:44:14
Cześć,
Czy jest możliwość użycia w kodzie ustawienia innych właściwości nowej wiadomości e-mail - chodzi mi głównie o zaszyfrowanie wiadomości?
-
2017/06/05 07:04:51
@Sarthan
Nie, tu nie da się zaszyfrować wiadomości.
Spróbuj jednak znaleźć coś tu:
vbatools.pl/
lub
www.outlook.pl/autor/oshon/
-
Gość: xlssas, *.dynamic.mm.pl
2017/07/28 08:08:59
jak do tego dodać pętlę, żeby wysłać kolejny plik do kolejnego adresata ?
-
2017/07/28 17:49:54
@Xlssas
Zrobiłabym pętlę w stylu np:
For i=1 to 2
WyslijMail
next i

Ma to jednak sens w przypadku, gdy dane do maila są zapisane gdzieś w arkuszu i zamiast wpisywania na sztywno parametrów maila - odwołujesz się do danych w komórce. N. tak:
.To = RANGE("A1")
.CC = RANGE("A2")

itp.itd.
-
Gość: , *.neoplus.adsl.tpnet.pl
2017/10/23 11:27:21
Ktoś wie może w jaki sposób wysłać takiego maila z poziomu excella z kodowaniem UTF-8?
-
Gość: pawelr88, *.play-internet.pl
2018/04/12 17:52:59
Witam,
Czy ktoś tu jeszcze odwiedza forum ? Mam problem- w zasadzie taki iż nie wiem co się zadziało. Postąpiłem zgodnie z procedurą, mam również konto na outlooku oraz zainstalowanego outlooka na komputerze z którego uruchamiałem makro. Outlook był włączony w trakcie uruchamiania makro, niestety nic się nie zadziało tzn. mail wraz z załącznikiem nie dotarł na skrzynkę outlookową na jaką go wysyłałem, ale tez nie wyskoczł żaden komunikat o błędzie. Będę wdzieczny za wskazówki.
Pozdrawiam


Książki warte polecenia
zobacz szczegóły...


A tu oferta na dziś:

Wydawnictwo Strefa Kursów



ministat liczniki.org



Napisz do mnie!