[AccessD] Using BLAT as an Emailer

Jim Lawrence accessd at shaw.ca
Thu Mar 4 23:35:21 CST 2010


Max:

I have just integrated BLAT and PDFCreator with a new client and now they, very seamlessly I might add, send any report or form, as a PDF attachment, to their clients. These are both a wonderful set of apps and easily  to use.

Jim

 

----- Original Message -----
From: Max Wanadoo <max.wanadoo at gmail.com>
Date: Thursday, March 4, 2010 4:00 pm
Subject: [AccessD] Using BLAT as an Emailer
To: 'Access Developers discussion and problem solving' <accessd at databaseadvisors.com>

> 
> Hi Guys,
> 
> Here is an example of using BLAT as an Emailer.
> Replaces CDO, Redemption, docmd.SendObject, Outlook, ClickYes, 
> etc, etc
> 
> FREE. I have used it in 32bit and this example was just used in 
> 64bit so the
> program (blat) is pretty stable.
> Example is tested in A2k3
> Example is tested using a know smtp server with login details. I 
> have not
> tried it in gmail. (yest)
> 
> Replace smtp login details with your own.
> 
> Max
> 
> 
> Option Compare Database
> Option Explicit
> ' Example by Max.Wanadoo at gmail.com
> ' Thanks to Stuart for helping to get the  batch call 
> running correctly.
> 
> ' NOW:Forget  CDO.
> ' Forget Redemption
> ' Forget SendObject
> ' We have BLAT.
> ' Free and NO installation - just put a copy in your project 
> folder and
> build some text files.
> 
> 
> ' Download Blat.zip from http://www.blat.net/
> ' extract the contents and place them in your app folder (we 
> only need the
> blat.exe but the rest will be worth reading.
> ' you can then create a FORM where the user can enter 
> variables.  We will
> assume some constants,  but these can
> ' be variables as well.
> ' You can also store them in tables if  you wish (I would)
> ' This is just an exampls so that you understand how it works.
> ' full details of all the options are in the downloaded text 
> files from
> blat.net
> 
> ' HERE are the contents of the text files used as examples. You 
> can create
> these on the fly from within Access.
> 
> ' Subject.txt = "Hello World"
> ' Body.txt = This is a test email from Blat.
> ' Recipients.txt = max.wanadoo at gmail.com, max.wanadoo at gmail.com,
> max.wanadoo at gmail.com
> ' cc.txt = max.wandoo at gmail.com
> ' bcc.txt = max.wanadoo at gmail.com
> ' Signature.txt = Max, Manager
> ' ps.txt = PS. To unsubscribe send an email to helpmeplease at heaven.com
> 
> 
> Private sBlatFile, sBlatLog
> 
> Sub BlatExample()
> 'place these varibles in a form  for the user  to 
> enter. We will just create
> them
> 'from here  to show how they fit together to make Blat work.
> ' What I have done is to put the contents of the various bits 
> into external
> text files and call them with these
> ' variables but you can put them directly into the varible if 
> you change the
> calling Blat Switch where required.
> ' See Blat file for documentation or drop me a line.  EG, -
> tf (to file)
> becomes -to (address list to send to)
> ' The files I have used are arbitarily named and I would 
> antipate generting
> them from within Access where appropriate.
> 
>     If BlatCreate( _
>        sFrom:="me at mydomain.org", _
>        
> sRecipients:="Recipients.txt", _
>        sCC:="CC.txt", _
>        sBCC:="bcc.txt", _
>        sSubject:="subject.txt", _
>        sBody:="Body.txt", _
>        
> sSMTPServer:="smtp.mydomain.org", _
>        
> sSMTPUser:="me at mydomain.org", _
>        
> sSMTPPwd:="mysecretsmtppassword", _
>        
> sSignature:="Signature.txt", _
>        sPS:="ps.txt", _
>        sAttach:="Attach.txt") = 0 Then
>         Call sShell(sBlatFile)
>     End If
> End Sub
> 
> Function BlatCreate( _
>          sFrom As 
> String, _
>          sRecipients As 
> String, _
>          sCC As String, _
>          sBCC As String, _
>          sSubject As 
> String, _
>          sBody As 
> String, _
>          sSMTPServer As 
> String, _
>          sSMTPUser As 
> String, _
>          sSMTPPwd As 
> String, _
>          sSignature As 
> String, _
>          sPS As String, _
>          sAttach As 
> String) As Long
>     On Error GoTo EH
> 
>     Dim sContents As String
>     sBlatFile = CurrentProject.Path & "\blat.bat"
>     sBlatLog = CurrentProject.Path & "\blat.log"
> 
>     sContents = "Blat.exe " & sBody & _
>               " -f " & sFrom & _
>               " -serverSMTP " & sSMTPServer & _
>               " -u " & sSMTPUser & _
>               " -pw " & sSMTPPwd & _
>               " -tf " & sRecipients & _
>               " -cf " & sCC & _
>               " -bf " & sBCC & _
>               " -sf " & sSubject & _
>               " -sig " & sSignature & _
>               " -ps " & sPS & _
>               " -attach " & sAttach
> 
>     ' That is  all the varibles, we will now 
> put our constants in, but
>     ' if you want any of these to be changeable 
> then just make them
> variables.
>     ' NB there are no cr/lf in this file.
>     ' this example asks for a read  receipt, etc.
>     
> 
>     sContents = sContents & " -noh2 -d -r -dsn 
> sfd -priority 1 -log blat.log
> -timestamp -ti 60 -try 3 -hostname MyHostName"
> 
>     Close 1
>     On Error Resume Next
>     Kill sBlatFile
>     Kill sBlatLog
>     On Error GoTo EH
>     Open sBlatFile For Output As #1
>     Print #1, sContents
>     Close 1
> EX:
>     Close 1
>     Exit Function
> EH:
>     BlatCreate = Err.Number
>     Select Case BlatCreate
>     Case Else
>         MsgBox "Error: " & 
> BlatCreate & vbCrLf & Err.Description
>     End Select
>     Resume EH
> End Function
> 
> Private Sub sShell(sFile)
>     Dim strCurPath As String, strCurDrive As 
> String, strProjPath As String,
> strProjDrive As String
>     ' get the project location
>     strProjPath = CurrentProject.Path
>     strProjDrive = Left(strProjPath, 
> 1):    'Debug.Print strProjDrive,
> strProjPath
> 
>     ' get the current location
>     strCurPath = CurDir
>     strCurDrive = Left(strCurPath, 
> 1):    'Debug.Print strCurDrive,
> strCurPath
> 
>     ' change the current location to the project 
> location    ' so that we can run the blat.exe 
> via  the blat.bat file
>     ChDrive strProjDrive
>     ChDir strProjPath
> 
>     ' now run the batch file
>     Shell sFile
> 
>     ' now restore the current location back to 
> what it was.
>     ChDrive strCurDrive
>     ChDir strCurPath
> End Sub
> 
> 
> 
> 
> -- 
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>



More information about the AccessD mailing list