• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 709
  • Last Modified:

Looking for a large file attachment solution for exchange/outlook


We are using Exchange 2007 server, and mostly Outlook 2003/2007.  Our users often need to send large PDF files (20-100MB) to other users.  Our attachment limit is 20MB (which I think is plenty, rather have it at 10MB personally) but there is definitely a need for sending large files in this company.

I've set them up with our FTP server and a mapped network drive that they can drop the files into their "X" drive and send a link to the recipient, but that has been cumbersome to the everyday user and hasn't been used much.

Does anyone know a good solution for sending large email attachments?  I am envisioning an app of some kind that would take large attachments, dump them on our FTP server, and replace the attachment with a hyperlink that be sent to the recipent for download via FTP.  Maybe as an outlook add-in or running directly on the exchange server.

But I'm open to any solutions that would solve this issue, let me know experts!

Thanks in advance,
1 Solution
I can't see a reason why not going to www.rapidshare.com and sending the file directly from their, faster and easier!!! to any user!
You can ask users to use below website

Chris BottomleyCommented:
How would you like it to work, for example user adds a number of files to an email and clicks send.

A VBA script could pick on any attachments at that timem strip out those that are oversize, (10MB for example)  and if the accumulated set are over 10MB then process many more smaller sizes until the 'limit' is met.  Each deleted file attachment could be replaced by a link tot the 'X' drive, (I assume this will be the same for all users) and the mail is then sent.  Of course it also means the originator will not have the files either in outlook.

If acceptab;e then let us knw and we can work on it for you.

Free tool for managing users' photos in Office 365

Easily upload multiple users’ photos to Office 365. Manage them with an intuitive GUI and use handy built-in cropping and resizing options. Link photos with users based on Azure AD attributes. Free tool!

taftelectricAuthor Commented:
Chris, that sounds exactly like what I was thinking.  It would keep the big attachments off of Exchange and give our users some flexibility for large files.  Would this VBA script run on the clients workstation or on the Exchange server?

Thanks again.
Chris BottomleyCommented:
Personally I cannot do exchange so I am simply envisioning an outlook client solution since that is within my capabilities.

taftelectricAuthor Commented:
Ok, that would actually work best since not all of our users would need it.
Chris BottomleyCommented:
First off then ... do you have an idea for what constitutes a reasonable attachment limit for your business ... i.e. small files lcan be embedded for HTML as an example and you wouldn't to delete them so if for example a file size of over 1MB is considered 'unreasonable' we could try deleting all such and replacing with links.

Secondly do you want to tell me the folderpath or replace it yourself if I identify a dummy.

3. How are you for VBA programming in outlook?

taftelectricAuthor Commented:
1) I think 10MB is reasonable
2) I can replace the folderpath, we will be adjusting our FTP server paths/folders to accomodate so it isn't known right this second
3) I haven't really done any VBA in outlook, very little for Excel in the past
Chris BottomleyCommented:
FWIW, I have put together som ecode that in my tests, (local directory) works fine.  Basically need to ensure the code is called hence it is important to know your skills base.  That aside try the following as a pointer to inserting teh code:

To Create a macro:

Alt + F11 to open the macro editor

  For Applicationevent handlers:
     In the project tree select as appropriate:
      OUTLOOK      : thisOutlookSession
     In the workpane select as appropriate:
      OUTLOOK      : Application
     In the workpane select the required 'event', (i.e. 'Send').
        Insert the required code from the supplied sub into the selected subroutine.
        Replace the template inserted by the VBE with the sub as supplied

  For User Code:
     Insert | Module to insert a code module into the project
     In the project tree select the module.
     Insert the required macro(s) into the selected module, ('Module1' or similar)

Close the Visual Basic Editor.

Check Security as appropriate:

In the application select Tools | Macro | Security
2003 and Earlier : Select Medium
2007 : Warnings for all Macros
Select OK

Chris BottomleyCommented:
This needs to be the application event handler in thisOutlookSession

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    saveAtt Item
End Sub

Open in new window

Chris BottomleyCommented:
This needs to be in a normal code module.  Modify the line:

    dosFolderPath = "c:\attachments\"

To the path where you want the attachments saving ... THE FOLDER MUST PRE_EXIST.

The file size is defined in the line:
        If olkAttachment.Size > 5196 Then
MOdify this to the byte limit of your choice.

If all is inserted correctly ... and i've done my bit it should work.  If you want specific adssitance then i'll hopefully look in again in the morning

Sub saveAtt(mai As MailItem)
Dim olkAttachment As Attachment
Dim intatt As Integer
Dim intIncrement As Integer
Dim dosFolderPath As String
Dim FSO As Object
Dim fn As String
Dim ft As String
    Set FSO = CreateObject("Scripting.FileSystemObject")
    dosFolderPath = "c:\attachments\"

    On Error GoTo exiat
    For intatt = mai.Attachments.count To 1 Step -1
        Set olkAttachment = mai.Attachments(intatt)
        If olkAttachment.Size > 5196 Then
            intIncrement = 1
            fn = Left(olkAttachment.FileName, InStrRev(olkAttachment.FileName, ".") - 1)
            ft = Right(olkAttachment.FileName, Len(olkAttachment.FileName) - InStrRev(olkAttachment.FileName, ".") + 1)
            Do While FSO.FileExists(dosFolderPath & fn & "_" & intIncrement & ft)
                intIncrement = intIncrement + 1
            olkAttachment.SaveAsFile dosFolderPath & fn & "_" & intIncrement & ft
            If mai.BodyFormat = olFormatHTML Then
                mai.HTMLBody = mai.HTMLBody & "<p>" & "<a href='file://" & dosFolderPath & fn & "_" & intIncrement & ft & "'>" & dosFolderPath & fn & "_" & intIncrement & ft & "</a>"
                mai.body = mai.body & vbCrLf & "<file://" & dosFolderPath & fn & "_" & intIncrement & ft & ">"
            End If
        End If
End Sub

Open in new window


Featured Post

[Webinar] Improve your customer journey

A positive customer journey is important in attracting and retaining business. To improve this experience, you can use Google Maps APIs to increase checkout conversions, boost user engagement, and optimize order fulfillment. Learn how in this webinar presented by Dito.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now