Solved

Automatically Attach PDF file to all reply emails as well as newly created emails

Posted on 2016-10-27
10
36 Views
Last Modified: 2016-10-27
Is there a way to automatically attach a PDF file whenever someone replies to an email in outlook as well as attach this same PDF to a newly created email? I need to attach a PDF file to basically ALL outbound emails whether they are replies or new emails from scratch. Can this be done in Outlook VBA?
0
Comment
Question by:Lawrence Salvucci
  • 6
  • 4
10 Comments
 
LVL 50

Accepted Solution

by:
Rgonzo1971 earned 500 total points
ID: 41862150
You could try to use the ItemSend event

Public WithEvents myOlApp As Outlook.Application
Public Sub Initialize_handler()
 
 Set myOlApp = Outlook.Application
 
End Sub
 
 
 
Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean)

Set myAttachments = Item.Attachments
myAttachments.Add Source:="C:\My Documents\Disclaimer.pdf", Type:=olByValue, DisplayName:="Disclaimer"
 
End Sub

Open in new window

for reference
https://msdn.microsoft.com/en-us/library/office/ff865076.aspx

Regards
0
 
LVL 1

Author Comment

by:Lawrence Salvucci
ID: 41862172
I put the code in a new module and ran it but it didn't attach anything. Did I miss something? Here is what I put:

Public Sub Initialize_handler()
 
 Set myOlApp = Outlook.Application
 
End Sub
 
Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim myAttachments As Outlook.Attachments
Set myAttachments = Item.Attachments
myAttachments.Add Source:="D:\BC Terms and Conditions.pdf", Type:=olByValue, DisplayName:="Disclaimer"
End Sub

Open in new window

0
 
LVL 50

Expert Comment

by:Rgonzo1971
ID: 41862189
it misses the with event and you have to close and reopen OL
Public WithEvents myOlApp As Outlook.Application

Open in new window

The sample code must be placed in a class module, and the Initialize_handler routine must be called before the event procedure can be called by Outlook.
0
Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

 
LVL 1

Author Comment

by:Lawrence Salvucci
ID: 41862194
I added that line of code and then closed and opened OL and still nothing. Does the "Initialize_handler" routine stay in the class module with the rest of the code or does that go in a separate module?
0
 
LVL 50

Expert Comment

by:Rgonzo1971
ID: 41862205
in the class module
 but outside the sub
0
 
LVL 50

Expert Comment

by:Rgonzo1971
ID: 41862213
is the code in "ThisOutlookSession" module?
0
 
LVL 1

Author Comment

by:Lawrence Salvucci
ID: 41862218
No. I put it in a new class module. Should it be in the "ThisOutlookSession"?
0
 
LVL 50

Expert Comment

by:Rgonzo1971
ID: 41862220
I think so
0
 
LVL 1

Author Comment

by:Lawrence Salvucci
ID: 41862233
I put it there and it's working now. I am putting the attachment on my network server so if a user goes to send an email from their laptop and they are not connected to the network then they will not be able to grab the attachment. Is there a way to just bypass the attachment if it cannot be found since they are not on the network instead of having it error out? This is only for users that send emails while on the network in the office. When they are outside the network they don't have to attach this file but I don't want the code to error out.
0
 
LVL 50

Assisted Solution

by:Rgonzo1971
Rgonzo1971 earned 500 total points
ID: 41862264
you can test if a file is there with

Res = Dir("c:\myFolder\myFile.txt")
if Res <> "" then
'attach file
End if

Open in new window

0

Featured Post

Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

If you don't know how to downgrade, my instructions below should be helpful.
When you have clients or friends from around the world, it becomes a challenge to arrange a meeting or effectively manage your time. This is where Outlook's capability to show 2 time zones in one calendar comes in handy.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
This Experts Exchange video Micro Tutorial shows how to tell Microsoft Office that a word is NOT spelled correctly. Microsoft Office has a built-in, main dictionary that is shared by Office apps, including Excel, Outlook, PowerPoint, and Word. When …

820 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question