[AccessD] Using BLAT as an Emailer

Max Wanadoo max.wanadoo at gmail.com
Fri Mar 5 09:24:03 CST 2010


Well done, Jim,

I am amazed at the wealth of options within Blat. Some of them I have no
real idea of what  they do, however I have just completed a  FORM holding
all the  options (about 80'ish) and will be putting some code onto them for
use in creating blat files for use and also integrting it into miniRelay to
send direct from pc without an external smtp server.

Pretty versatile product.

Max
 

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Lawrence
Sent: Friday, March 05, 2010 5:35 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Using BLAT as an Emailer

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
>
-- 
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