marți, 11 septembrie 2012

Cum sa trimiti automat un mail printr-o apasare de buton?


Buna,

La inceputul lunii am lucrat la un raport care trebuia trimis catre mai multe persoane, si am cautat o sintaxa VBA prin care sa trimit cate un mail la fiecare persoana folosind Thunderbird. Oricat as vrea sa va spun ca am gasit, nu se poate.

Ca sa foloseste totusi optiunea de trimitere mail prin VBA am apelat la Outlook si pentru ca multe persoane m-au intrebat cum se face, astazi va voi prezenta sintaxa pentru trimiterea mailurilor folosind Outlook.

Configurarea fisierului

Pentru exemplul de azi, nu a fost nevoie de o configurare foarte complicata. Am formatat o celula pentru adaugarea adresei de mail catre care se trimite mailul si am adaugat un buton pentru trimiterea mailului. Procedura VBA pentru trimiterea mailului am alocat-o butonului Trimite mail din fisier.














Sintaxa VBA

Sintaxa pentru apelara aplicatiei Outlook si pentru trimiterea mailului este standard. Pentru optimizarea procedurii, am adaugat in fisierul campul pentru completarea adresei de mail. Acest lucru se poate face atat pentru subiectul, cat si pentru continutul mailului.
Sub Mail_Workbook()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim Mail As String
   

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    Mail = Worksheets("Send Mail").Range("C2").Value

    On Error Resume Next
    'Modifica Subiectul mailului si corpul mailului
    With OutMail
        .To = Mail
        .CC = ""
        .BCC = ""
        .Subject = "Mail automat"
        .Body = "Acest mail se trimite folosind un macro."
        .Attachments.Add ActiveWorkbook.FullName

        .Send
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

Daca doriti sa intelegeti mai bine exemplul din acest articol, puteti downloada fisierul de lucru de la urmatorul link: SendMail.xls.

4 comentarii:

  1. Stii ca eu sunt de parere ca orice se poate. Vezi metoda a doua din articolul asta:

    http://www.databison.com/index.php/3-nifty-ways-to-send-email-using-excel/

    E mai vechi dar eu cred ca inca merge. Poti trimite mail folosind orice SMTP server daca ai toate setarile de conectare la el: utilizator, parola, port, etc.

    RăspundețiȘtergere
  2. Va rog sa mai postati o data fisierul SendMail.xls, link-ul indicat este invalid sau fisierul a fost sters. Multumesc.

    RăspundețiȘtergere
  3. Am actualizat linkul de download al fisierului. Din pacate pe fisierul initial mi l-au restrictionat cei de la mediafire.

    RăspundețiȘtergere