Scripting

 

BulkMailer can execute VBScript Code within the mail text while the e-mails are being compiled. This means that you can control the contents of each individual email with your own programming.

You access the objects of the e-mail thereby by means of two BulkMailer script objects. As a result of this, you can

  • output text
  • attach file attachments to the e-mail
  • modify the subject line
  • load texts/templates from a file
  • access the current data record

This means that you will be able to manage the following tasks, for example:

  • all recipients of the domain xyz.de receive a different text content
  • all of those interested in the product xyz receive product information as an attachment
  • [..]

Prerequisites

You will need at least some programming skills of VBScript.

Script Block Masking

A Script Block is masked by the following character string:


<% Script-Code %>
An e-mail can contain several Script Blocks. Any VBScript-Code can be specified within this marking.

  • In a PlainText mail, the script block is inserted directly into the email message
  • In a HTML mail, the script block must be inserted into the HTML source code
Examples:
Numbers from 1 to 100

<%
For i = 1 To 100
   Email.Textout i & vbCrLf
Next
%>
Current Date

<% Email.TextOut FormatDateTime(Now, 1) %>

The Email-Object

The e-mail object is available to you within the Script Code with the following methods and properties:

Output of the character-string

read/write the subject

Attach a file

Insert the contents of a text file at this position

Stop generating this e-mail, do not copy it to the outbox

The Record-Object

Return value: contents of the current value from this column as a character-string.

Return value: contents of the current value from this column as a variant-type.
(can contain NULL values, numbers, dates, etc.)

The BulkMailer address database internally uses different column names, than shown in the application.
A full listing of the column names can be found here.

Examples


<%
If InStr(1, Record("Email"), "@xyz", vbTextCompare) <> 0 Then
	Email.LoadTextfile "d:\mails\abc.txt"
Else %>
	Standard Mailtext
<% End If %>

<%
If Record("InteresseXYZ") = True Then
	Email.AttachFile "d:\produktinformation\produktxyz.pdf"
End If
%>;

*(your database contains a column "InterestXYZ" of the boolean type)


<%
' --- calculate birthday
If IsDate(Record.Value("Birthday")) Then
	Const CDays = 7 ' --- can be adjusted
	Dim dtBirthDay
	Dim lDiff

	dtBirthDay = DateSerial(Year(Now), Month(Record.Value("Birthday")), Day(Record.Value("Birthday")))

	' --- handle overflow
	If 365 - DateDiff("d", Now, dtBirthDay) <= CDays Then
		dtBirthDay = DateAdd("yyyy", -1, dtBirthDay)
	End If
	lDiff = DateDiff("d", Now, dtBirthDay)

	If lDiff <= 0 And lDiff >= -CDays Then  ' had birthday within the past 7 days
		' --- add a text block from file
		Email.LoadTextfile "d:\Birthday.txt"
	End If
End If
%>;

VBScript Language Reference Guide

A language reference guide to VBScript can be found in the
MSDN Library

Notes concerning protection of registered trademarks

The VBScript technology is the property of the Microsoft Company. Integration into this application has been possible thanks to the outstanding interfaces available with this technology.