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